我通过终端中的 libreoffice 将 .ODS 文件转换为 .XLSX。现在我想将该 .XLSX 文件转换为 .CSV。 (从 .ODS 到 .CSV 显然只执行工作簿中的第一张工作表,但是您可以使用 xlsx2csv 从 .XLSX 中获取单独的 .CSV 中的所有工作表,正如我从一堆谷歌搜索中发现的那样,总结它的最佳答案在这里:https://askubuntu.com/questions/1042624/how-to-split-an-ods-spreadsheet-file-into-csv-files-per-sheet-on-the-terminal)
但是每当我跑步时
~$ ~/.local/bin/xlsx2csv -a "/home/username/Pictures/folder/folder/XLSXDepot/file.xlsx" "/home/username/Pictures/folder/folder/XLSXDepot"
Error: potential invalid date format.
我收到此错误,所有谷歌结果都无法让我到达那里。
一些结果表明 1900 年之前的日期与脚本不兼容。这很酷,除了我在这本工作簿中没有日期。它会将数字或字符串误读为日期戳并破坏自身。就像大海捞针一样,甚至找出它不喜欢的东西。
一些谷歌结果显示了一些将ignore_formats传递给它的方法;但我不知道如何在 bash 中做到这一点。
帮助页面还吐出了这样的内容:
--ignore-formats IGNORE_FORMATS [IGNORE_FORMATS ...]
Ignores format for specific data types.
但它没有告诉我什么是 IGNORE_FORMATS 可接受的值。我尝试过“日期”、“日期格式”、日期格式、日期、“日期”、“日期格式”、日期和日期格式。用引号引起来或更改大写字母,它们都会不断给我同样的错误。我试图将此标志放在命令中的 -a 之前。
是否有人 googlefu 很棒并且可以找到一些手册页来描述 --ignore-formats 标志的可接受值?因为我得到的最接近的是 ubuntu 手册页网站,它甚至根本没有提到 --ignore-formats 标志。
使用内置标志可以工作,--ignore-formats,但我根本找不到可接受的值。
来自 LibreOffice 7.2 版本的发行说明:
--convert-to csv:... 命令行电子表格转换或导出过滤器选项字符串接受新的可选第 12 个数字参数,这使得可以将整个文档导出到单独的工作表 .csv 文件或指定的工作表。 tdf#135762(Caolán McNamara,红帽;Eike Rathke,红帽)
例如:
soffice --convert-to csv:"Text - txt - csv (StarCalc)":44,34,UTF8,1,,0,false,true,false,false,false,-1 sample.ods
-1。对于所有工作表,每个工作表都会导出到基本文件名与工作表名称连接的单个文件,例如sample-Sheet1.csv、sample-Sheet2.csv 和sample-Sheet3.csv
(来源:https://wiki.documentfoundation.org/ReleaseNotes/7.2#Document_Conversion)
--convert to csv:
的前9个选项在这里:https://wiki.openoffice.org/wiki/Documentation/DevGuide/Spreadsheets/Filter_Options#Filter_Options_for_the_CSV_Filter
附注仍在寻找其他选项的文档......