我正在 LibreOffice 中处理 ODS 文件,我时不时地想从命令行将其转换为 CSV 。
我为此找到了两个工具:libreoffice --headless --convert-to csv
和
unoconv -f csv
,但是当 LibreOffice 的 UI 实例运行时,它们都不起作用。有没有办法在 LibreOffice UI 实例运行时从命令行将 ODS 文件转换为 CSV?
只需跳过 --headless
参数。即使
C:\TEMP\Untitled1.ods
resp,以下命令(在 PowerShell 中运行)对我也有效。
/tmp/Untitled1.ods
在 LibreOffice Calc 中打开:Windows 10(使用 LibreOffice 7.0.1 测试)
或类似,如果当前工作目录是
& 'C:\Program Files\LibreOffice\program\soffice.exe' --convert-to csv --outdir C:\TEMP\ .\Untitled1.ods
C:\Program Files\LibreOffice\program\
:
Linux(使用 LibreOffice 6.4.6 测试)
.\soffice --convert-to csv --outdir C:\TEMP\ C:\TEMP\Untitled1.ods
在 Linux 上,您也可以使用
soffice --convert-to csv --outdir /tmp/ /tmp/Untitled1.ods
libreoffice
命令代替
soffice
(似乎是 Linux 特定的...):
在所有情况下,
libreoffice --convert-to csv --outdir /tmp/ /tmp/Untitled1.ods
Untitled.csv
都是在预期位置创建的。
在 MacOS 上测试:
/Applications/LibreOffice.app/Contents/MacOS/soffice --convert-to csv myspread.ods
这在同一目录中写出了myspread.csv
所有工作表生成 CSV 文件。这可以通过额外的令牌实现——例如,请参阅 https://git.libreoffice.org/core/+/b8903bc106dad036acb3d117e5c4fc955697fe02%5E%21/ 。提交消息中的示例用法:
soffice --convert-to csv:"Text - txt - csv (StarCalc)":44,34,UTF8,1,,0,false,true,false,false,false,-1 sample.ods