[英]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.