加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > Python > 正文

如何从命令行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方法不起作用.尝试不设置隐藏为真.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读