如何从命令行Python脚本中保存LibreOffice Calc电子表格中的所有
发布时间:2020-12-20 13:39:03 所属栏目:Python 来源:网络整理
导读:我正在尝试使用命令行程序将LibreOffice ODS电子表格文件中的工作表(总共四个)导出为CSV. 我正在使用 https://github.com/mirkonasato/pyodconverter的基本PyODConverter.py. 我遇到的问题是,保存/全部/四个文件中的工作表(当前的方法是将它们保存在每个工作
我正在尝试使用命令行程序将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方法不起作用.尝试不设置隐藏为真. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |