LibreOffice如何将Excel中的所有/特定工作表转换为CSV格式?

4

如何将Excel文件中除第一个表之外的任何内容转换为CSV格式?

我的当前代码是:

libreoffice --headless --convert-to csv --outdir data/csv_files  data/excel_files/*.*

我想转换第 n 个工作表,甚至所有工作表,而不仅仅是第一个。
谢谢!
2个回答

2

当保存为CSV时,LibreOffice只会保存活动工作表。命令
libreoffice --convert-to将使用第一个工作表。

与其使用--convert-to,使用宏来完成这个相对简单的任务会更好。该宏只需要激活特定的工作表,然后将其保存为CSV。如果您编写了一个名为"MyMacro1"的宏,它可以接受工作表名称作为参数,并可以通过命令行运行,如下所示:

soffice macro:///Standard.Module1.MyMacro1("sheet 2")

这里有一些示例代码(点击此处)。同时,保留Andrew Pitonyak的宏文档作为参考。

另外,这里提供了使用xslx2csv的解决方案,但我没有尝试过:https://ask.libreoffice.org/en/question/46466/how-to-convert-specific-sheet-to-csv-via-command-line/


我从未在命令行中使用过LibreOffice。我应该在哪里编写/放置所述的宏? - Catalin
打开LibreOffice并转到“工具->宏->组织宏->LibreOffice Basic”。展开“My Macros / Standard”并选择“Module1”。在此处添加宏,这将将其放入您机器上的用户配置文件目录中。 - Jim K
4
可以通过终端完成这个操作,而无需使用LibreOffice的用户界面吗? - Catalin
你是在询问如何使用终端编写宏吗?如果是的话,你可能会对使用文本编辑器(如vi)编写Python感兴趣。然后将.py文件复制到用户配置文件目录下的Scripts/python中。就这样,没有涉及图形界面! - Jim K
你在上面的代码中使用了哪个Python xls解析库? - JosephK
LibreOffice的UNO API - Jim K

0

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接