我正在寻找一种方法来将xlsx文件转换为Linux中的csv文件,我不想使用PHP / Perl或类似的东西,因为我要处理数百万行数据,所以我需要一些东西。我找到了一个名为xls2csv的ubuntu repo程序,但它只会转换xls(Office 2003)文件,但是,我需要添加对较新的excel文件的支持,有什么办法?
发布于 2017-12-28 15:07:49
$ ssconvert Book1.xlsx newfile.csv
Using exporter Gnumeric_stf:stf_csv
$ cat newfile.csv
Foo,Bar,Baz
1,2,3
123.6,7.89,
2012/05/14,,
The,last,Line
在Ubuntu上安装:
apt-get install gnumeric
在Mac上安装:
brew install gnumeric
发布于 2017-12-28 15:20:17
你可以使用LibreOffice完成此操作:
libreoffice --headless --convert-to csv $filename --outdir $outdir
由于我不清楚的原因,你可能需要使用sudo来运行这个程序。你可以通过向sudoers文件中添加以下行,使LibreOffice无需密码就可以使用sudo:
users ALL=(ALL) NOPASSWD: libreoffice
发布于 2017-12-28 16:22:36
如果你已经有一个桌面环境,那么我确信Gnumeric / LibreOffice能够正常工作,但是在一个无头的服务器上(比如Amazon Web Services),它们需要许多你需要安装的依赖关系。
我发现这个Python的替代方案:
https://github.com/dilshod/xlsx2csv
$ easy_install xlsx2csv
$ xlsx2csv file.xlsx > newfile.csv
如果你有多个工作表,你可以一次或一次导出所有工作表:
$ xlsx2csv file.xlsx --all > all.csv
$ xlsx2csv file.xlsx --all -p '' > all-no-delimiter.csv
$ xlsx2csv file.xlsx -s 1 > sheet1.csv
他还链接到以Bash,Python,Ruby和Java构建的几个替代方案。
https://stackoverflow.com/questions/-100001301
复制相似问题