2016-01-07 42 views

回答

3

在撰寫本文時,顯然unoconv故意不做任何重新計算,因爲它可能會導致錯誤。請參閱Issue 97。 unoconv源代碼的相關部分已被註釋掉。

所以你可以嘗試的一件事是進入你的unoconv副本並取消註釋這些行(使它們再次活動)。你可能會遇到錯誤,或者你可能會沒事。

如果您的公式很簡單,那麼您可以嘗試的另一件事是使用Python計算它們,並使用XlsxWriter將結果與公式一起寫入公式。請注意,worksheet.write_formula() method有一個可選的value參數。從官方文檔引用:

XlsxWriter不計算公式的結果,而是將值0存儲爲公式結果。然後在XLSX文件中設置一個全局標誌,以表示在打開文件時應重新計算所有公式和函數。這是Excel文檔中推薦的方法,一般來說,它適用於電子表格應用程序。但是,無法計算公式的應用程序(如Excel Viewer)或某些移動應用程序將只顯示0結果。

如果需要,還可以使用可選的value參數指定公式的計算結果。在使用不計算公式結果的非Excel應用程序時,這是偶爾需要的:[...]

請注意,如果公式是這樣的,你可以用Python計算它們,而你只關心最終的PDF(沒有人會使用電子表格,並且在將其轉換爲PDF後,您只需將其丟棄),那麼您可以直接寫入值,而無需使用公式。