我正在尝试使用命令行程序将LibreOffice ODS电子表格文件中的工作表(总共四个)导出为CSV。
我正在https://github.com/mirkonasato/pyodconverter处理基本上是PyODConverter.py的内容
我遇到的问题是,保存/全部/四个文件中的工作表(当前的方法是将它们保存在每个工作表的单独文件中)。
免责声明:我对Python编程感到过于自信(尚未)。无论如何,在前面提到的python脚本中,在转换函数的最后,我添加了这个:
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监听器正在运行,所以所有设置都已完成,并且脚本确实起作用,只有结果不符合预期)。
感谢您的任何见解。
答案 0 :(得分:1)
您没有此处的所有代码,但如果您使用pyodconverter作为框架,则问题可能就是问题:
loadProperties = { "Hidden": True }
设置隐藏属性时,setActiveSheet方法不起作用。尝试一下,不要将Hidden设置为true。