openpyxl
库可以非常方便的处理xlsx
文件,但是这个库修改过xlsx
文件之后,如果再次用openpyxl
打开该文件,会发现无法获取到公式的计算结果,即可以获取到公式,但是无法获取公式结果,返回一个None
。
这是因为openpyxl
修改xlsx
过后不会对公式进行计算,导致了公式结果丢失,自然也就读取不到公式结果了。
想解决这个问题可以借助win32api
调用Excel
打开xlsx
文件,不对文件进行修改的情况下保存一次,这样Excel
会计算公式结果,之后再用openpyxl
就能读取到公式结果了。
处理代码如下:
from win32com import client as wc
xl = wc.DispatchEx("Excel.Application")
wb = xl.workbooks.open("your xlsx file path")
xl.Visible = False
wb.Save()
xl.Quit()