使用libreoffice calc将xls保存为csv


20

我正在使用LibreOffice 3.5.7.2 Build ID:350m1(Build:2),并希望从终端运行LibreOffice calc以打开.xls文档并输出到.csv。我可以通过GUI来完成此操作,只需打开xls文件并将其另存为csv并指定分隔符即可,但是我希望能够通过终端来做到这一点。

我所做的研究:

当我跑步时

> man libreoffice

我得到:

SYNOPSIS
       libreoffice  [--accept=accept-string]  [--base]  [--calc] [--convert-to
       output_file_extension[:output_filter_name]

它有一个命令--convert-to输出,但是我不完全确定该示例的外观,我尝试过:

libreoffice --convert-to csv:writer_csv_Export --outdir /Data/ *.xls

https://help.libreoffice.org/Common/Starting_the_Software_With_Parameters/vi所述,但它不起作用。


1
libreoffice --headless --convert-to csv --outdir somedir *.xls似乎起作用。:writer_csv_Export似乎是不必要的,这也可能是一个问题,这/Data/意味着Data在文件系统根目录而不是主目录中调用了一个目录。只需省略--outdir DIR,您将在当前目录中获得输出。
慢性病

Answers:


31

libreoffice --headless --convert-to csv --outdir somedir *.xls 似乎起作用。

--headless 阻止Libreoffice打开窗口,因此它只会转换文件,然后退出。

:writer_csv_Export之后csv似乎是不必要的。

这也可能是一个问题,这/Data/意味着文件系统根目录(而不是主目录)中的目录名为Data。只需省略--outdir DIR,您将在当前目录中获得输出。

注意:

运行此命令之前,请关闭xls / xlsx文件。如果打开文件,则此命令无效。


1
有没有一种方法可以在命令行中指定距离?IE浏览器而不是逗号,管道?
Eduardo Dennis

1
对此存在一个增强错误,因此大概不是-> libreoffice.org/bugzilla/show_bug.cgi?id=68786
chronitis

好的,没问题,希望他们能尽快解决:-D
Eduardo Dennis

3
它仅导出第一张纸。有没有办法将所有工作表导出到单独的文件中?
Grzegorz Wierzowiecki

@GrzegorzWierzowiecki,如该Ask Libreoffice答案中所述,您必须先转换为XLSX,然后通过转换为CSV xlsx2csv。对于其他所有内容,都包含宏:link - link
Avio
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.