【问题标题】:How to make unoconv auto calculate formulae before converting into pdf?如何在转换为pdf之前使unoconv自动计算公式?
【发布时间】:2016-04-11 12:39:12
【问题描述】:

我使用 python 模块 Xlsxwriter 创建了一个 .xlsx 文件。

效果很好,但是当我运行时,任何包含公式的单元格都会显示为空或 0

unoconv -f pdf spreadsheet.xlsx

如何强制 unoconv 在转换为 pdf 之前自动计算值?

【问题讨论】:

    标签: python excel pdf libreoffice unoconv


    【解决方案1】:

    在撰写本文时,显然 unoconv 故意不进行任何重新计算,因为它可能会导致错误。见Issue 97。 unoconv的源码相关部分被注释掉了。

    因此,您可以尝试的一件事是进入您的 unoconv 副本并取消注释这些行(使它们再次处于活动状态)。您可能会遇到错误,或者您可能会没事。

    如果您的公式很简单,您可以尝试的另一件事是使用 Python 计算它们并使用 XlsxWriter 将结果与公式一起写入。请注意,worksheet.write_formula() method 有一个可选的value 参数。引用官方文档:

    XlsxWriter 不计算公式的结果,而是将值 0 存储为公式结果。然后它在 XLSX 文件中设置一个全局标志,表示在打开文件时应重新计算所有公式和函数。这是 Excel 文档中推荐的方法,通常它适用于电子表格应用程序。但是,不具备计算公式功能的应用程序(例如 Excel Viewer)或某些移动应用程序只会显示 0 个结果。

    如果需要,还可以使用可选的value 参数指定公式的计算结果。在使用不计算公式结果的非 Excel 应用程序时,这有时是必要的:[...]

    请注意,如果公式是这样的,您可以使用 Python 计算它们,并且您只关心最终的 PDF(没有人会使用电子表格,并且在您将其转换为 PDF 之后,您还是将其丢弃) ,那么你可以直接写值,根本不用公式。

    【讨论】:

      猜你喜欢
      • 2019-03-31
      • 2019-10-31
      • 1970-01-01
      • 2021-07-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-06-08
      相关资源
      最近更新 更多