我使用 python 模块 Xlsxwriter 创建了一个 .xlsx 文件。
效果很好,但是当我运行时,任何包含公式的单元格都会显示为空或 0
unoconv -f pdf spreadsheet.xlsx
如何在转换为 pdf 之前强制 unoconv 自动计算值?
我使用 python 模块 Xlsxwriter 创建了一个 .xlsx 文件。
效果很好,但是当我运行时,任何包含公式的单元格都会显示为空或 0
unoconv -f pdf spreadsheet.xlsx
如何在转换为 pdf 之前强制 unoconv 自动计算值?
在撰写本文时,显然 unoconv 故意不进行任何重新计算,因为它可能会导致错误。见第 97 期。unoconv 源代码的相关部分被注释掉了。
因此,您可以尝试的一件事是进入您的 unoconv 副本并取消注释这些行(使它们再次处于活动状态)。您可能会遇到错误,或者您可能会没事。
如果您的公式很简单,您可以尝试的另一件事是使用 Python 计算它们并使用 XlsxWriter 将结果与公式一起写入。请注意,该worksheet.write_formula()
方法有一个可选value
参数。引用官方文档:
XlsxWriter 不计算公式的结果,而是将值 0 存储为公式结果。然后它在 XLSX 文件中设置一个全局标志,表示在打开文件时应该重新计算所有公式和函数。这是 Excel 文档中推荐的方法,通常它适用于电子表格应用程序。但是,不具备计算公式功能的应用程序(例如 Excel Viewer)或某些移动应用程序将仅显示 0 结果。
如果需要,也可以使用可选value
参数指定公式的计算结果。在使用不计算公式结果的非 Excel 应用程序时,有时需要这样做:[...]
请注意,如果公式是这样的,您可以使用 Python 计算它们,并且您只关心最终的 PDF(没有人会使用电子表格,并且在将其转换为 PDF 之后,您无论如何都将其丢弃),那么您可以直接写值,根本不需要公式。