在linux shell脚本中将xlsx转换为xls

Pre*_*shi 14 shell-script excel

我需要使用 shell 命令将“.xlsx”文件转换为“.xls”。

在我的工作中,我们目前正在使用 xlsx2csv 命令,但现在要求已更改,我们需要将所有“.xlsx”文件转换为“.xls”文件以进行进一步计算。

为此,我工作中的某个人开发了一个可以将“.xlsx”转换为“.xls”的命令,但是,这仅适用于一张纸..

我们在一个文件中有多个工作表。

提前致谢....

for*_*are 20

如果您安装 LibreOffice,您可以使用以下命令:

libreoffice --headless --convert-to xls myfile.xlsx
Run Code Online (Sandbox Code Playgroud)

要不就:

libreoffice --convert-to xls myfile.xlsx
Run Code Online (Sandbox Code Playgroud)

在最近的版本 (>= 4.5) 中,--convert-to意味着--headless.

这将创建myfile.xls,并保留原始的myfile.xlsx — 因此您可能需要在验证转换成功后进行清理。

  • 使 `--convert-to` 暗示 `--headless` 的提交是 https://gerrit.libreoffice.org/gitweb?p=core.git;a=commit;h=fe5527f1c6dc259af464a0593e86a2da2983b7ed(4.4 版)。在以前的版本中,这两个选项都必须通过。 (3认同)

JJo*_*oao 6

你也可以试试ssconvertgnumeric的配套转换器工具

ssconvert in.xlsx out.xls
Run Code Online (Sandbox Code Playgroud)

(通常,请参阅man ssconvert

对于正常情况,这很好。如果输入文件在基于(libreoffice 和 gnumeric)的转换器中都非常先进,则可能会丢失一些细节。