首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >在linux命令行中如何将xlsx转换为csv?

在linux命令行中如何将xlsx转换为csv?
EN

Stack Overflow用户
提问于 2017-12-28 09:10:38
回答 5查看 0关注 0票数 0

我正在寻找一种方法来将xlsx文件转换为Linux中的csv文件,我不想使用PHP / Perl或类似的东西,因为我要处理数百万行数据,所以我需要一些东西。我找到了一个名为xls2csv的ubuntu repo程序,但它只会转换xls(Office 2003)文件,但是,我需要添加对较新的excel文件的支持,有什么办法?

EN

回答 5

Stack Overflow用户

发布于 2017-12-28 15:07:49

代码语言:javascript
复制
$ 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上安装:

代码语言:javascript
复制
apt-get install gnumeric

在Mac上安装:

代码语言:javascript
复制
brew install gnumeric
票数 0
EN

Stack Overflow用户

发布于 2017-12-28 15:20:17

你可以使用LibreOffice完成此操作:

代码语言:javascript
复制
libreoffice --headless --convert-to csv $filename --outdir $outdir

由于我不清楚的原因,你可能需要使用sudo来运行这个程序。你可以通过向sudoers文件中添加以下行,使LibreOffice无需密码就可以使用sudo:

代码语言:javascript
复制
users ALL=(ALL) NOPASSWD: libreoffice
票数 0
EN

Stack Overflow用户

发布于 2017-12-28 16:22:36

如果你已经有一个桌面环境,那么我确信Gnumeric / LibreOffice能够正常工作,但是在一个无头的服务器上(比如Amazon Web Services),它们需要许多你需要安装的依赖关系。

我发现这个Python的替代方案:

https://github.com/dilshod/xlsx2csv

代码语言:javascript
复制
$ easy_install xlsx2csv
$ xlsx2csv file.xlsx > newfile.csv

如果你有多个工作表,你可以一次或一次导出所有工作表:

代码语言:javascript
复制
$ 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构建的几个替代方案。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/-100001301

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档