用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 文件路径在你的计算机上是正确的,否则保存的公式可能无法正确执行。
此外,在保存公式时,请务必记住在文件路径中使用斜杠(/)而不是反斜杠(\)