在SO和其他地方搜索几天后,我找不到明确的答案。因为我确信我不是第一个想知道这件事的人,所以我希望你们其中一位能够启发我。R/python - excel工作簿的动态版(单元格中的公式)
我有一个xlsx工作簿,在几个单元格中有简单的公式(如SUM,...)。
比方说:
A1 = 10
A2 = 20
A3 = A1+A2 (so basically A3=30 to start with)
我需要运行一个脚本,将,例如改变A1的值(如一千次),并保存A3的值,统计的目的。理想情况下,这需要在Web服务器上完成。
现在,我正在使用[R的XLconnect库,可以让我导入XLSX文件,编辑一些细胞和公式自动应用他们需要的是(所以如果我改变A1的价值,然后阅读A3,这些变化将被考虑在内)。
XLconnect的唯一问题是,如果我理解的很好,它会非常慢,因为Java依赖关系。编写一个单元格并阅读另一个单元格会花费过多的时间,因此数千次的时间可能会很痛苦。 例如,对“正常”工作簿进行10次迭代大约需要10秒。我可以对计算进行并行处理,但是根据JVM的不同,我已经阅读了并行处理。
我曾尝试其他的库和其他语言(R/openxlsx,R/XLSX,R/xlsReadWrite,Python的/ openpyxl),和他们都不动态更新的细胞。当我更新A1的值时,A3的读数仍然是30.或者我错误地使用它们。
因此我的问题: 是否有语言/库,允许导入一个excel文件,同时保持细胞之间的依赖关系,并且不依赖于Java?或者一种加速进程的方法(例如,通过调用JVM一次,而不是每次读取/写入单元格时)?
为什么你需要Excel?为什么不用Python/R做计算呢? –
不需要Excel将是梦想。不幸的是我需要在不同的人的Excel工作簿上运行脚本。他们已经将Excel用于各种有用的目的。我根本不能要求他们以不同的方式格式化他们的数据。 – jav
在R和/或Python中执行所有计算,然后在格式化的Excel工作簿中输出最终结果 - 最终只输出一次**!当然,您可以使用默认连接到Excel对象库的Excel VBA(当然,R和Python也可以通过COM连接到它)。 – Parfait