在 Linux 中使用命令行在 Linux 中将 XLSX 转换为 CSV
XLSX文件是现代MicrosoftExcel电子表格的标准文件扩展名。我们使用这些文件来分析和组织数据,它们通常包含由单元格内的行和列分隔的数字数据。
另一方面,CSV文件基本上是一个使用逗号分隔值的分隔文本文件,该文件的每一行通常是一个数据记录。
虽然xlsx和csv存储数据的格式有很大不同,因为一种使用带有行和列的表格,而另一种使用逗号来分隔值,但这并不意味着我们不能将一个转换为另一个.
有几个在线工具可以使用,但是在使用linux终端将xlsx转换为csv时,它比将文件上传到某处并获取csv作为输出要复杂一些。
我们可以使用不同的命令行应用程序来做同样的事情,我将展示两个最常用的应用程序,它们可以帮助我们使用linux命令行将xlsx转换为csv。
第一个是gnumeric电子表格应用程序。gnumeric电子表格应用程序带有一个名为ssconvert的命令行实用程序,我们将使用它来将xlsx转换为csv。
为了使用ssconvert,我们首先需要在本地机器上安装gnumeric电子表格应用程序。
对于Ubuntu
apt-get install gnumeric
对于Mac
brew install gnumeric
现在我们在本地机器上有了gnumeric,下一步是使用ssconvert实用程序,我们就完成了。
将如下所示的命令写入终端,将a.xlsx文件转换为b.csv
ssconvert Sample_XLSX.xlsx Sample_CSVFile.csv
应该注意的是,这两个文件都存在于我的本地环境中,您可以简单地将它们替换为您本地计算机上的任何文件。
输出结果
$ssconvert Sample_XLSX.xlsx Sample_CSVFile.csv Using exporter Gnumeric_stf:stf_csv
现在,如果我检查在上述命令的帮助下创建的Sample_CSVFile的内容,我将获得以下输出-
immukul@192 Downloads % cat SampleCSVFile_11kb.csv 1,"Eldon Base for stackable storage shelf, platinum",Muhammed MacIntyre,3,-213.25,38.94,35,Nunavut,Storage & Organization,0.8 2,"1.7 Cubic Foot Compact ""Cube"" Office Refrigerators",BarryFrench,293,457.81,208.16,68.02,Nunavut,Appliances,0.58 3,"Cardinal Slant-D? Ring Binder, Heavy Gauge Vinyl",Barry French,293,46.71,8.69,2.99,Nunavut,Binders and Binder Accessories,0.39 4,R380,Clay Rozendal,483,1198.97,195.99,3.99,Nunavut,Telephones and Communication,0.58
您可以清楚地注意到记录以逗号分隔,因此该文件是有效的。
实现上述目标的另一种方法是使用libreoffice,在这种情况下,我们只需将以下命令写入终端即可将xlsx文件转换为csv。
for i in *.xlsx; do libreoffice --headless --convert-to csv "$i" ; done
上面的命令会将当前目录中存在的所有文件转换为它们的csv同名文件。
输出结果
命令前
immukul@192 cc % ls -ltr total 40 -rw-r--r--@ 1 immukul staff 5425 Jul 3 11:48 Sample_XLSX.xlsx
命令后
immukul@192 cc % ls -ltr total 16 -rw-r--r--@ 1 immukul staff 5425 Jul 3 11:48 Sample_XLSX.csv