使用Python 3.5parsing所有Excel公式的最快方法

作为一个更大的testing集的一部分,我需要提取上传的Excel工作簿中的所有公式。 然后我需要将每个公式parsing到各自的范围引用中,并将这些引用转储到一个简单的数据库中。 例如,如果单元格A1具有公式= B1 + C1,则我的数据库将loggingB1和C1作为引用的单元格。

目前我使用openpyxl一次读取一个公式,然后parsing它们。 这对于较小的工作簿来说很好,但是对于大型工作簿来说,它可能非常慢。 这感觉完全没有效率。

pandas或类似的模块可以更快地提取Excel公式吗? 或者,也许有更好的方法来提取所有的工作簿公式,而不是一次只读一个单元格?

任何意见将不胜感激。

“提取公式更快”是什么意思? 他们与每个细胞存储,所以你必须逐个细胞。 在parsing时,openpyxl包含了一个可能有用的记号器。 从理论上讲,这将允许您直接读取工作表XML文件,并仅使用其中的公式parsing节点。 但是,您还必须处理某些应用程序使用的“共享公式”。 openpyxl自动将这些公式转换为每个单元格的公式。

pandas内部依赖xlrd来读取文件,所以将东西读入Pandas的ETL不会比直接使用工作表对象更快。

不知道python,但快速解决这个问题的方法是:

  • 将R1C1模式中的所有公式转换为使用特殊单元的数组
  • 进入一个集合/字典来获得独特的
  • 然后parsing唯一