簡體   English   中英

如何從命令行Python腳本中保存LibreOffice Calc電子表格中的所有工作表

[英]How can I save ALL sheets in a LibreOffice Calc Spreadsheet from a command-line Python script

我正在嘗試使用命令行程序將LibreOffice ODS電子表格文件中的工作表(總共四個)導出為CSV。
我正在使用https://github.com/mirkonasato/pyodconverter上的 PyODConverter.py。

我遇到的問題是,保存/全部/四個文件中的工作表(當前的方法是將它們保存在每個工作表的單獨文件中)。

免責聲明:我對Python編程感到過於自信(尚未)。 無論如何,在前面提到的python腳本中,在convert函數的最后,我添加了這個:

try:
        oSheets = document.Sheets
        for i in range( oSheets.Count ):
            sheet = oSheets.getByIndex( i )
            document.CurrentController.setActiveSheet( sheet )
            outputUrl = self._toFileUrl( sheet.Name + ".csv" )
            print sheet.Name + " " + outputUrl
            document.storeToURL( outputUrl, self._toProperties( storeProperties ) )
    finally:
        document.close(True)


但是,這樣做是將當前活動的工作表保存四次。 奇怪的是,這個片段正確地“訪問”了所有工作表(它們的名稱是連續報告的),但是在它們被保存時,總是保存相同的工作表。 所以我最終得到了四個相同的CSV文件。

預期的結果是如此回避,以至於我開始認為它無法完成。

(關於操作環境的旁注:我有一個運行的LibreOffice監聽器,所以所有設置都要去,而且腳本確實起作用,只有結果不符合預期)。
感謝您的任何見解。

你沒有這里的所有代碼,但如果你使用pyodconverter作為框架,問題可能就是這一行:

     loadProperties = { "Hidden": True }

設置隱藏屬性時,setActiveSheet方法不起作用。 嘗試不設置隱藏為真。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM