有没有办法使用Python从XLSX文件中获取长公式的计算值
我正在尝试读取许多XLSX文件,我不关心函数,我只需要它返回的值。该文件未被修改,也不会被修改,因此获取这些单元格中的缓存值对我来说也很好 我已经阅读并尝试了许多有关StackOverflow的解决方案,但没有一个有效:有没有办法使用Python从XLSX文件中获取长公式的计算值,python,pandas,openpyxl,xlsx,pycel,Python,Pandas,Openpyxl,Xlsx,Pycel,我正在尝试读取许多XLSX文件,我不关心函数,我只需要它返回的值。该文件未被修改,也不会被修改,因此获取这些单元格中的缓存值对我来说也很好 我已经阅读并尝试了许多有关StackOverflow的解决方案,但没有一个有效: 有人说熊猫会默认读取数值而不是公式 我已经试过了,但是我的数据框中所有带有公式的单元格都变成了nan from openpyxl import load_workbook wb = load_workbook(filename = f, data_only = True) f
nan
from openpyxl import load_workbook
wb = load_workbook(filename = f, data_only = True)
from openpyxl import load_workbook
wb = load_workbook(filename = f, data_only = True)
data\u only=True
,所有单元格也都是nan
from openpyxl import load_workbook
wb = load_workbook(filename = f, data_only = True)
from openpyxl import load_workbook
wb = load_workbook(filename = f, data_only = True)
2.1。我还尝试了使用data\u only=False
,然后使用pycel
这一个对我来说几乎足够好了,因为它可以计算简单的公式,比如=IFERROR(E98/E78,“-”
,但是有一些复杂的公式,比如=(SUM(AC38:AD38)/BH45)/(SUM(Q38:R38)/BD45)-1
我得到了一个递归错误:
RecursionError: maximum recursion depth exceeded in comparison
Eval: vlookup(_C_("Key Metrics!C80"), _R_("YipitData Metrics (1P)!C8:AAT27"), match(_C_("Key Metrics!D7"), _R_("YipitData Metrics (1P)!C5:AAT5"), 0), 0) / vlookup("Implied JD Mall 1P GMV Net/Gross & Coverage Ratio", _R_("Historical Accuracy!B60:ADD70"), match(_C_("Key Metrics!D7"), _R_("Historical Accuracy!B58:ADD58"), 0), 0)
此错误的完整日志非常长,但所有日志都是在处理上述异常期间,发生了另一个异常:
然后是另一个递归错误
2.2。再次尝试使用公式
计算公式,但当我运行这行代码时:
model=formulas.ExcelModel().load(文件名).finish()
我得到了一个错误:
Failed DISPATCHING 'CHAR' due to:
NotImplementedError()
日志要长得多,但我不能包括所有内容,因为StackOverflow说我的帖子看起来像垃圾邮件
通过
openpyxl
读取带有标志data_only=False
的文件,然后使用pycel
再次计算值是我现在的最佳选择,但这还不够,因为它无法读取我上面引用的这么长的公式。是否有任何更改或其他库可以修复我的问题?谢谢大家! 请更具体一些。如果文件不打算更改,可能会将其导出到.csv并使用它?请更具体一些。如果文件不打算更改,可能会将其导出到.csv并使用它?