libreoffice 将所有/特定工作表从 excel 转换为 csv
Posted
技术标签:
【中文标题】libreoffice 将所有/特定工作表从 excel 转换为 csv【英文标题】:libreoffice convert all/specific sheet(s) from excel to csv 【发布时间】:2016-03-14 13:10:30 【问题描述】:除了将 Excel 文件的第一张表转换为 CSV 之外,我如何将其他任何内容转换为 CSV?
我当前的代码是:
libreoffice --headless --convert-to csv --outdir data/csv_files data/excel_files/*.*
我想转换第 n 个工作表,甚至是所有工作表,而不仅仅是第一个工作表。
谢谢!
【问题讨论】:
【参考方案1】:保存为 CSV 时,LibreOffice 将只保存活动工作表。命令libreoffice --convert-to
将使用第一张表。
不用--convert-to
,这是一个相对简单的宏任务。宏只需要激活特定工作表,然后另存为 CSV。如果您编写一个名为“MyMacro1”的宏,它采用工作表的名称,它可以从命令行运行,如下所示:
soffice macro:///Standard.Module1.MyMacro1("sheet 2")
一些示例代码是here。同时保留Andrew Pitonyak's Macro document 作为参考。
或者,这是使用xslx2csv 的解决方案,我没有尝试过:https://ask.libreoffice.org/en/question/46466/how-to-convert-specific-sheet-to-csv-via-command-line/。
【讨论】:
我根本没有从命令行使用 libreoffice。我在哪里写/把所说的宏? 打开 LibreOffice 并转到Tools -> Macros -> Organize Macros -> LibreOffice Basic
。展开 My Macros / Standard
并选择 Module1
。在此处添加宏,它将把它放在您机器上的user profile directory 中。
不使用 LibreOffice UI 可以从终端完成吗?
您是在问如何使用终端编写宏吗?如果是这样,您可能有兴趣使用 vi 等文本编辑器在python 中写作。然后将 .py 文件复制到Scripts/python
下的用户配置文件目录。瞧——不涉及图形用户界面!
你在上面使用了什么 Python xls 解析器库?以上是关于libreoffice 将所有/特定工作表从 excel 转换为 csv的主要内容,如果未能解决你的问题,请参考以下文章
如何将数据从 LibreOffice Calc 导入 SQL 数据库?
如何从命令行 Python 脚本将所有工作表保存在 LibreOffice Calc 电子表格中
带有 LibreOffice 的 JodConverter 在 docx 到 pdf 转换后将所有字母输出为正方形