经过几天搜索SO和其他地方,我无法找到明确的答案。因为我确定我不是第一个对此感到疑惑的人,我希望你们中的一个能够启发我。
我有一个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一次,而不是每次我读/写一个单元格)?
答案 0 :(得分:0)
Java有一个非常好的Excel库
<link rel="stylesheet"href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/css/bootstrap.min.css">
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.12.2/jquery.min.js"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.6/js/bootstrap.min.js"></script>
你可以使用jython来融合java和python两个领域。