在转换成pdf之前如何使unoconv自动计算公式?

我使用python模块Xlsxwriter创build了一个.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之后,就把它扔掉),那么你可以直接写入数值,而不需要公式。