有没有一种方法,最好使用命令行将多个.csv文件转换为一个多页.xls电子表格?


14

有没有一种方法,最好使用命令行将多个.csv文件转换为一个多页.xls电子表格?

如果没有cli解决方案,那么最好知道是否有一个API可以在awk或pascal中正常工作,但是如果失败了,那么一切都可以了。


Maythux提到的ssconvert是Gnumeric的配套命令,默认情况下将安装在Ubuntu桌面系统上,而不是服务器版本上。
Arronical '16

考虑到Excel将在.xls文件中加载CSV的事实,您可以简单地执行以下操作:cat *.csv > file.xls
ash

试试这个
Lety

1
ssconvert可以做到完美。我需要的是将每个.csv文件放在单独的工作表中。使用cat并不能达到目的。ssconvert可以。
彼得·布鲁克斯

@ash csv和xls是不同的格式,将一堆csvs绑定到文件并重命名xls根本不起作用,因为csvs不支持多张工作表,所以它只能制作一个长的csv,而且csv是纯文本格式,而xls是一种二进制格式
chiliNUT

Answers:


16

您可以使用命令ssconvert

ssconvert example.csv example.xls

要对多个文件执行此操作,您必须对csv文件进行bash循环并执行此工作。这里提示:

for i in *.csv; do ssconvert "$i" "${i%.*}".xls; done

编辑:

要转换并合并为一个单一的xls文件,您仍然可以使用ssconvert。

ssconvert --merge-to=output.xls file1.csv file2.csv ....

或容易

ssconvert --merge-to=output.xls *.csv 

1
用引号将变量引起来至关重要"$i" "${i%.*}".xls,否则任何包含空格的文件名都将破坏命令(并可能覆盖不相关的文件)。
帕迪·兰道
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.