2017-09-08 53 views
-1

我目前已經編寫了一個使用UNO與LibreOffice .ods文檔進行交互的Python腳本。但是,它非常不穩定,並導致很多系統錯誤並在Ubuntu 17.04上崩潰。我是否需要安裝Excel以「交互式」使用Openpyxl?它可以與.ODS格式交互嗎?

我通過openpyxl文檔閱讀,但我無法找到答案,這個簡單的問題:我是否可以使用openpyxl在Ubuntu到動態操縱.XLSX或內嵌式一的.ods文件?

I.e.我想打開文檔,從單元中讀取數據,在循環中更新單元格值,從文檔自己的公式中讀取新的輸出數據,然後將此輸出加載到numpy數組中,並關閉文檔而不保存它。

是否必須安裝Excel/libreoffice for openpyxl才能以這種方式使用嵌入的公式?

謝謝

回答

2

OpenPyXL不需要和不能使用的Excel的運行實例。它根本不與.ods進行交互。最接近OpenPyXL的.ods是pyexcel-ods。評估Excel公式的唯一實用方法是使用Excel的運行實例。同樣,評估LibreOffice公式的唯一實用方法是使用LibreOffice的一個運行實例。

所以如果你想「交互式」地使用OpenPyXL或pyexcel-ods,你必須而不是使用Excel/LibreOffice公式,而是用Python做所有的計算。

如果您需要公式,並且需要在Linux中運行它,那麼以某種形式使用UNO(以控制LibreOffice的運行實例)可能仍然是您的最佳選擇。請注意,UNO有幾個不同的Python接口,例如PyOOUnoTools。我不知道你現在在用什麼。

最後,如果基於UNO的方法實際上太不穩定,並且您確實有權訪問Excel,那麼您可以嘗試xlwings。如果要在Linux中運行它(這可能需要一臺虛擬機;對Wine下的Excel的證明最好是混合在一起),這將是相當複雜的。

相關問題