在Linux CLI上将XLSX格式文件转换为CSV的5个方法
XLSX是Microsoft Excel使用的打开XML电子表格文件格式的文件扩展名。
使用命令行时,将Microsoft Excel表转换为逗号分隔文件(CSV)相对非常容易。
当我们有XLS文件时,情况可能会到达,并且在格式化数据后,我们需要从中填充数据库。
它在命令行中存在一些方法,以便执行不同格式文件的转换。
1)Gnumeric电子表格计划
Gnumeric是在GNU通用公共许可证下分发的UNIX和UNIX的操作系统的电子表格程序。
它通过在将来的会话期间创建文件并重新打开这些文件来存储其信息。
它可以将电子表格数据导入和从多种格式导出,包括CSV,Microsoft Excel,HTML,OpenDocument,Quattro Pro和LaTeX。
默认情况下不存在危险库中的CentOS 7的存储库,我们必须先安装最新的Lux-Release。
首先下载它
# wget http://repo.iotti.cc/CentOS/7/noarch/lux-release-7-1.noarch.rpm --2016-10-13 23:32:19-- http://repo.iotti.cc/CentOS/7/noarch/lux-release-7-1.noarch.rpm Resolving repo.iotti.cc (repo.iotti.cc)... 156.54.7.11 Connecting to repo.iotti.cc (repo.iotti.cc)|156.54.7.11|:80... connected.
现在你可以安装lux版本
# rpm -Uvh lux-release-7-1.noarch.rpm warning: lux-release-7-1.noarch.rpm: Header V4 DSA/SHA1 Signature, key ID 53e4e7a9: NOKEYCSV Preparing... ################################# [100%] Updating/installing... 1:lux-release-7-1 ################################# [100%]
使用Lux-Release安装了,我们现在可以通过包安装Gnumeric
# yum install gnumeric Loaded plugins: fastestmirror, langpacks lux | 2.9 kB 00:00:00 lux/7/primary_db | 1.0 MB 00:00:05 Loading mirror speeds from cached hostfile * base: ftp.hosteurope.de * epel: mirror.liquidtelecom.com * extras: ftp.hosteurope.de * updates: ftp.hosteurope.de Resolving Dependencies --> Running transaction check ---> Package gnumeric.x86_64 1:1.10.10-2.el7.lux.1 will be installed
现在,我们可以使用Gnumeric电子表格的SSconvert命令来转换文件
# ssconvert book.xlsx file.csv Using exporter Gnumeric_stf:stf_csv
我们可以立即可视化文件
# cat file.csv fichier, paul, nathan,couvert coultheitroad,file road,
2)XLSX2CSV转换器
XLSX2CSV转换器是一个Python应用程序,它能够将一批XLSX/XLS文件转换为CSV格式。
我们可以确定要转换哪些表格。
如果我们有多个纸张,XLSX2CSV可以一次性地导出所有纸张或者一次。
要安装它,我们需要安装Python。
然后,我们可以如下所述:
# easy_install xlsx2csv Searching for xlsx2csv Reading https://pypi.python.org/simple/xlsx2csv/ Best match: xlsx2csv 0.7.3 Downloading https://pypi.python.org/packages/4c/56/4c7f595525839710ab563c8e5a48226021111c1324b1460e603256f7665c/xlsx2csv-0.7.3.tar.gz#md5=b9cffbbe815259987237135f99658c63 Processing xlsx2csv-0.7.3.tar.gz
现在,我们可以转换XLSX文件
# xlsx2csv book.xlsx > convert.csv
我们可以检查文件的内容
# cat convert.csv fichier, paul, nathan,couvert coultheitroad,file road,
默认情况下,即使文件包含倍数表,XLSX2CSV命令也只转换第一个纸张。
幸运的是,它会消除可能的纸张或者选择要转换的可能性。
我们可以使用一些有趣的参数:
-a,--all
要导出所有床单-d分隔符
为csv中的列分隔符-p theptedelimiter for phother dremiter用于分隔工作表,通过
'''如果我们不需要分隔符,或者'x07'或者
'\ f'f for form feed(默认值:'----- ---')- `-s stordids for纸张号转换
例如,如果要仅转换特定工作表
# xlsx2csv class.xlsx -s 2 > sheet2.csv
你可以检查一下
# cat sheet2.csv sheet2 take linux centos
现在,如果要转换所有工作表,则可以如下所示
# xlsx2csv class.xlsx --all > allsheet.csv
我们可以查看以下内容
# cat allsheet.csv -------- 1 - Sheet1 fichier road -------- 2 - Sheet2 sheet2 take linux centos -------- 3 - Sheet3 devops script lxd
我们可以看到默认分隔符有助于了解表格。
3)CSVKIT工具
CSvkit是一个优化的Python库,用于使用CSV文件。
使用CSV格式,它是一个很好的工具来操作,组织,分析和处理数据。
它非常轻盈,快速。
它是通过终端使用的,其中包含in2csv命令,它将各种常见文件格式转换为csv格式的xls,xlsx和固定宽度。
# pip install csvkit Collecting csvkit Using cached csvkit-1.0.2.tar.gz Collecting agate>=1.6.0 (from csvkit)
现在我们可以如下转换:
# in2csv Classeur2.xlsx > book3.csv
4)Unoco.
OpenOffice附带UnoCONV程序,以在命令行上执行格式转换。
如果安装OpenOffice,则默认情况下存在。
我们可以使用手册
# unoconv --help usage: unoconv [options] file [file2 ..] Convert from and to any format supported by LibreOffice unoconv options: -c, --connection=string use a custom connection string -d, --doctype=type specify document type (document, graphics, presentation, spreadsheet) -e, --export=name=value set export filter options eg. -e PageRange=1-2 -f, --format=format specify the output format -i, --import=string set import filter option string eg. -i utf8 -l, --listener start a permanent listener to use by unoconv clients -n, --no-launch fail if no listener is found (default: launch one) -o, --output=name output basename, filename or directory --pipe=name alternative method of connection using a pipe -p, --port=port specify the port (default: 2002) to be used by client or listener --password=string provide a password to decrypt the document -s, --server=server specify the server address (default: 127.0.0.1) to be used by client or listener --show list the available output formats --stdout write output to stdout -t, --template=file import the styles from template (.ott) -T, --timeout=secs timeout after secs if connection to listener fails -v, --verbose be more and more verbose (-vvv for debugging)
该命令能够在各种文件格式之间进行转换。
默认情况下,它会在PDF中转换。
这意味着如果我们不想具有不希望的格式,则应指示所需的格式。
因此,要使用UNOCON命令转换CSV,我们需要使用两个主要参数:
-f
表示请求的最终格式的输出文件-o
表示转换后的文件的名称和路径
# unoconv -f csv -o class2.csv Classeur2.xlsx
我们可以查看内容
# cat class2.csv fichier, , ,couvert ,file road,
请注意,我们原始XLSX文件的第二行是空的,这就是为什么我们在CSV文件的第二行中拥有逗号。
5)Libreoffice无头
通过从命令行开始libreoffice软件,我们可以分配各种参数,我们可以使用它来影响性能。
通过无头模式可以在没有任何图形接口组件的命令行中启动LibreOffice。
它使我们可以根据需要以某种格式转换文件。
因此,我们可以使用它来在CSV中转换XLSX文件。
我们需要使用指示的最终格式(CSV)与--convert-to
参数后跟文件转换为如下所示:
# libreoffice --headless --convert-to csv book.xlsx --outdir conv/ convert /home/admin/Desktop/book.xlsx -> /home/admin/Desktop/conv/book.csv using filter : Text - txt - csv (StarCalc)
现在你可以检查文件
# cat conv/book.csv fichier, paul, nathan,couvert coultheitroad,file road,
我们可以直接转换一些XLSX文件如下:
# libreoffice --headless --convert-to csv --outdir conv/*.xlsx convert /home/admin/Desktop/book.xlsx -> /home/admin/Desktop/conv//book.csv using filter : Text - txt - csv (StarCalc) convert /home/admin/Desktop/Classeur1.xlsx -> /home/admin/Desktop/conv//Classeur1.csv using filter : Text - txt - csv (StarCalc) convert /home/admin/Desktop/Classeur2.xlsx -> /home/admin/Desktop/conv//Classeur2.csv using filter : Text - txt - csv (StarCalc) convert /home/admin/Desktop/class.xlsx -> /home/admin/Desktop/conv//class.csv using filter : Text - txt - csv (StarCalc)
我们可以看起来如下所示
[root@centos7-srv Desktop]# ls conv book.csv class.csv Classeur1.csv Classeur2.csv
我们可以检查一个文件的内容
# cat conv/Classeur2.csv fichier, , ,couvert ,file road,