用openpyxl读取Excel单元格中公式包含vlookup无法保存公式问题

用openpyxl读取Excel单元格中公式包含vlookup函数,但是通过openpyxl读取时,公式中的路径编程[1]1,路径消失,并且把读取到的vlookup公式保存到Excel中时,再次打开就没有保存上,不知道是什么原因,谢谢。
sheet_ranges_c.cell(row=single.row, column=single.column).value = single.value

Excel中的公式如下:
=VLOOKUP($L5,'E:\Users\ninaliu\Desktop\Python开发[2Testing.xlsx]Sheet1'!$A:$C,3,0)

读取到的如下:
=VLOOKUP($L3,'[3]1'!$A:$B,2,0)

望采纳


在 Excel 中,单元格的公式可以包含一个或多个函数,比如 VLOOKUP 函数。这种函数可以在 Excel 中被计算,但是在使用 openpyxl 读取 Excel 文件时,函数会被读取为一个字符串,而不会被计算。


如果想要在 openpyxl 中执行一个公式,可以使用 evaluate() 方法,它会在 openpyxl 中对公式进行求值,并返回结果。例如,可以使用以下代码来获取一个单元格的值(假设你已经读取了单元格并将它存储在变量 cell 中):

from openpyxl.utils.cell import evaluate_formula

result = evaluate_formula(cell)
在使用 openpyxl 保存公式时,请注意,保存的公式必须是完整的,并且文件路径必须是有效的。例如,如果你正在使用以下代码保存公式:

Copy code
from openpyxl.utils.cell import evaluate_formula

cell = sheet.cell(row=1, column=1)
cell.value = "=VLOOKUP($L5,'E:\Users\ninaliu\Desktop\Python开发[2Testing.xlsx]Sheet1'!$A:$C,3,0)"

result = evaluate_formula(cell)

请确保 Excel 文件路径在你的计算机上是正确的,否则保存的公式可能无法正确执行。


此外,在保存公式时,请务必记住在文件路径中使用斜杠(/)而不是反斜杠(\)