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 转换后将所有字母输出为正方形

如何从 Libreoffice Calc 工作簿的所有工作表中删除所有图像

Python UNO(libreoffice):如何为工作表启用自动过滤器