实际上,有一个使用Excel公式并使用Python对其求值的项目: Pycel。Pycel使用Excel本身(通过COM)提取公式,因此在您的情况下,您将跳过该部分。
该项目可能有一些有用的东西可供您使用,但是我不能保证它的成熟度或完整性。
它并不是真正为普通大众开发的。
还有一个名为Koala的较新项目,该项目基于Pycel和OpenPyXL。
如果您不能使用Excel,但 可以
自己计算公式的结果(在Python代码中),另一种方法是将值和公式都写入一个单元格中(这样,当您读取文件时,可以只需拉出该值,根本不用担心公式)。在撰写本文时,我还没有在OpenPyXL中找到一种方法来做到这一点,但是XlsxWriter可以做到。从文档中:
XlsxWriter不会计算公式的值,而是将值0存储为公式结果。然后,它在XLSX文件中设置一个全局标志,说打开该文件时应重新计算所有公式和函数。这是Excel文档中建议的方法,并且通常可以与电子表格应用程序很好地配合使用。但是,不具备计算公式功能的应用程序(例如Excel
Viewer)或某些移动应用程序将仅显示0结果。如果需要,还可以使用options值参数来指定公式的计算结果。当使用不计算公式值的非Excel应用程序时,这有时是必要的。计算出的值将添加到参数列表的末尾:
worksheet.write_formula(’A1’,’= 2 + 2’,num_format,4)
通过这种方法,当需要读取值时,可以使用OpenPyXL的
data_only选项。(对于其他人,阅读此答案:如果您使用xlrd,则无论如何都只能使用该值。)
最后,如果您 确实
有Excel,那么您可能要做的最直接,最可靠的事情就是自动在Excel中打开和重新保存文件(以便它可以为您计算和编写公式的值)。xlwings是从Windows或Mac上执行此操作的简便方法。



