Linux 如何从命令行将包含html标记的.xls文件转换为分隔的.csv文件

Linux 如何从命令行将包含html标记的.xls文件转换为分隔的.csv文件,linux,excel,xlsx,xls,format-conversion,Linux,Excel,Xlsx,Xls,Format Conversion,我们需要从jira门户下载导出,并将此信息插入表中以进行某些报告。现在的挑战是,从jira下载的文件的扩展名是.xlx,并且包含所有html链接。当我通过命令行使用xls2csv(catdoc软件)和其他转换器工具时,它们无法识别文件格式,也无法转换。我需要将此文件转换为带有分隔符的.csv文件,这样我就可以使用sql loader将其加载到表中。 如果系统上安装了libreoffice,在bash终端上运行以下代码(作为普通用户,而不是root-查看原因)可能会对您有所帮助: libreoff

我们需要从jira门户下载导出,并将此信息插入表中以进行某些报告。现在的挑战是,从jira下载的文件的扩展名是.xlx,并且包含所有html链接。当我通过命令行使用xls2csv(catdoc软件)和其他转换器工具时,它们无法识别文件格式,也无法转换。我需要将此文件转换为带有分隔符的.csv文件,这样我就可以使用sql loader将其加载到表中。

如果系统上安装了
libreoffice
,在
bash
终端上运行以下代码(作为普通用户,而不是
root
-查看原因)可能会对您有所帮助:

libreoffice --invisible --convert-to csv my_file.xls
如果您需要在以
root
身份运行的脚本上运行此代码,如果您以“普通”用户而不是
root
身份运行此命令,则仍然可以(安全地)运行此命令,例如:

su - myuser -c 'libreoffice --invisible --convert-to csv my_file.xls'
myuser="$(logname 2>/dev/null)"
要找出谁是应该用来运行上述命令的
用户
,最好的选择之一是使用
logname
命令,例如:

su - myuser -c 'libreoffice --invisible --convert-to csv my_file.xls'
myuser="$(logname 2>/dev/null)"

你的“xlx”(xlsx?,xls?)文件真的是一个原生excel文件,还是带有excel头的HTML文件?我认为即使是扩展名为“xls”,它也必须是HTML或xml。似乎最好的第一步是确认你的源文件的确切格式?JIRA导出的文件实际上是一个重命名为xls的HTML文件。但当我在Excel中打开它,然后用分隔符另存为CSV时,它工作正常。但是我需要命令行的过程来自动化过程。听起来你需要找到一个能够解析HTML内容的工具/库,并使用它将下载转换为CSV。我从未使用过LibreOffice,你能告诉我软件的下载位置和安装过程吗?它应该可以直接从大多数
Linux
存储库中获得。这将适用于许多
Linux
发行版:
apt-get-update&&apt-get-y-install-libreoffice
。如果这不起作用,你使用哪个
Linux
2014年7月27日15:55:46美国东部夏令时x86\u 64 x86\u 64 x86\u 64 x86\u 64 GNU/LinuxLSB版本::base-4.0-amd64:noarch:core-4.0-amd64:noarch:core-4.0-amd64:noarch:graphics-4.0-amd64:amd64:noarch-4.0-4.0-noarch:AMD60-DRAPHICS发行商:RedHatEnterpriseServer描述:Red Hat Enterprise Linux服务器版本6.5(圣地亚哥)版本:6.5代码名:Santiago您可能需要检查此和/或此