jmc*_*ara 219
该Gnumeric的电子表格应用程序附带一个名为命令行实用程序ssconvert能够在各种电子表格格式之间进行转换:
$ 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
Run Code Online (Sandbox Code Playgroud)
要在Ubuntu上安装:
apt-get install gnumeric
Run Code Online (Sandbox Code Playgroud)
要在Mac上安装:
brew install gnumeric
Run Code Online (Sandbox Code Playgroud)
spi*_*ech 128
您可以使用LibreOffice执行此操作:
libreoffice --headless --convert-to csv $filename --outdir $outdir
Run Code Online (Sandbox Code Playgroud)
由于我不清楚的原因,您可能需要使用sudo运行它.您可以通过将此行添加到sudoers文件,使LibreOffice无需密码即可使用sudo:
users ALL=(ALL) NOPASSWD: libreoffice
Run Code Online (Sandbox Code Playgroud)
and*_*ber 116
如果您已经拥有桌面环境,那么我确信Gnumeric/LibreOffice可以正常运行,但是在无头服务器(例如Amazon Web Services)上,它们需要您还需要安装的许多依赖项.
我找到了这个Python替代品:
https://github.com/dilshod/xlsx2csv
$ easy_install xlsx2csv
$ xlsx2csv file.xlsx > newfile.csv
Run Code Online (Sandbox Code Playgroud)
花了2秒钟安装并像魅力一样工作.
如果您有多张工作表,则可以一次导出所有工作表,也可以一次导出一个工作表:
$ xlsx2csv file.xlsx --all > all.csv
$ xlsx2csv file.xlsx --all -p '' > all-no-delimiter.csv
$ xlsx2csv file.xlsx -s 1 > sheet1.csv
Run Code Online (Sandbox Code Playgroud)
他还链接到使用Bash,Python,Ruby和Java构建的几个替代方案.
nev*_*ves 29
在bash中,我使用此libreoffice命令转换当前目录中的所有xlsx文件:
for i in *.xlsx; do libreoffice --headless --convert-to csv "$i" ; done
Run Code Online (Sandbox Code Playgroud)
它负责文件名中的空格.
几年后再次尝试,但它没有奏效.这个帖子给出了一些提示,但最快的解决方案是以root身份运行(或运行a sudo libreoffice).不优雅,但很快.
在Windows中使用命令scalc.exe
Hol*_*ndl 28
使用csvkit
in2csv data.xlsx > data.csv
Run Code Online (Sandbox Code Playgroud)
详情请查看他们优秀的文档
另一种选择是通过一个小的bash包装器使用R以方便:
xlsx2txt(){
echo '
require(xlsx)
write.table(read.xlsx2(commandArgs(TRUE)[1], 1), stdout(), quote=F, row.names=FALSE, col.names=T, sep="\t")
' | Rscript --vanilla - $1 2>/dev/null
}
xlsx2txt file.xlsx > file.txt
Run Code Online (Sandbox Code Playgroud)
如果.xlsx文件有多张纸,-s可以使用标记来获取所需的纸张.例如:
xlsx2csv "my_file.xlsx" -s 2 second_sheet.csv
Run Code Online (Sandbox Code Playgroud)
second_sheet.csv将包含第二张数据my_file.xlsx.
您可以使用可执行文件libreoffice将 .xlsx 文件转换为 csv:
libreoffice --headless --convert-to csv ABC.xlsx
Run Code Online (Sandbox Code Playgroud)
参数--headless表明我们不需要GUI。
小智 5
使用随附的Gnumeric电子表格应用程序确实非常简单:命令行工具ssconvert
find . -name '*.xlsx' -exec ssconvert -T Gnumeric_stf:stf_csv {} \;
Run Code Online (Sandbox Code Playgroud)
完成了!
如果您可以运行 Java 命令行,那么您可以使用 Apache POI HSSF 的Excel Extractor来完成。它有一个main称为命令行提取器的方法。这似乎只是把所有东西都倒掉了。他们指出这个转换为 CSV 的示例。您必须先编译它,然后才能运行它,但它也有一个main方法,因此您本身不必做太多编码即可使其工作。
另一个可能可行但需要在另一端进行一些工作的选项是让您的 Excel 文件以 Excel XML 数据或XML 电子表格的形式提供给您,无论 MS 现在如何调用该格式。它将打开一个全新的机会世界,让您可以按照自己想要的方式对其进行切片和切块。
| 归档时间: |
|
| 查看次数: |
221824 次 |
| 最近记录: |