使用uno(openoffice api)打开电子表格*而不用*重新计算

时间:2012-01-23 22:04:31

标签: openoffice-calc uno pyuno

我正在使用pyuno来读取excel电子表格(在linux上运行。)许多单元格都有公式,指的是显然不可用的插件。但是,单元格值是我想要的。

但是当我加载并读取工作表时,似乎正在评估这些公式,因此这些值会被错误覆盖。

我尝试过几件事情,其中​​没有一件有效:

  • 在对desktop.loadComponentFromURL的调用中设置标志AutomaticCalculation = False,MacroExecutionMode = NEVER_EXECUTE
  • 在已加载的文档上调用document.enableAutomaticCalculation(False)

有什么建议吗?

2 个答案:

答案 0 :(得分:0)

如果formluas不是问题,您可以通过处理电子表格的副本来解决问题,其中只存在值(而不是公式)。

要快速实现这一目标,请选择整张表内容,复制,特殊粘贴;然后删除除“值”之外的所有内容。保存到新文件(确保不覆盖原始文件或每个公式都将丢失!)。然后,您的脚本应该能够处理此文件。

这是一个丑陋的解决方案,因为必须有一种方法来编程。

答案 1 :(得分:0)

Calc在加载文档后还不支持使用缓存的结果。 Libreoffice Calc现在使用xls文档的缓存结果。结果也存储在od中,但在加载文档时被忽略,并且通过编译和解释保存的公式来评估公式结果。

有一些计划也要为ods和xlsx添加这个,但是有很多ods生产者在那里写错文件的结果。所以到目前为止,唯一的解决方案是使文档的第二个版本只保存结果(或在calc中实现)。