csh*_*eth 11 command-line xls csv
我知道使用in2csv将特定工作表保存为 .csv:
in2csv --sheet "sheet name" file1.xls > sheet-name.csv
但是还有其他工具可以打印工作表名称吗?
也许 Perl 有选项?
des*_*ert 13
in2csv从csvkit包中提供了--names或-n选项:[来源]
-n, --names Display sheet names from the input Excel file.
Run Code Online (Sandbox Code Playgroud)
在您的示例中,命令将是:
in2csv -n file1.xls
Run Code Online (Sandbox Code Playgroud)
此功能是在csvkit1.0.2中添加的,对于比 Bionic 更早的版本,官方包源中不提供该功能。如果您正在运行 Xenial,则需要
通过安装它pip与
sudo pip install csvkit
Run Code Online (Sandbox Code Playgroud)以获取最新版本。
in2csv是更简单的选择,但我会留下这个以防有人发现它有用。有一个很好的命令xlhtml可以将 XLS 文件转换为 HTML 或 XML。一旦您拥有 XML,就可以使用各种 XML 处理工具对其进行各种查询。在这种情况下:
$ xlhtml -xml ~/foo.xls | xmlstarlet sel -t -m '//pagetitle' -v . -n
Sheet1
Sheet2
Run Code Online (Sandbox Code Playgroud)
xlhtml生成的 XML是这样的:
<?xml version="1.0" encoding="iso-8859-1" ?>
<excel_workbook>
<sheets>
<sheet>
<page>0</page>
<pagetitle>Sheet1</pagetitle>
<firstrow>0</firstrow>
<lastrow>11</lastrow>
<firstcol>0</firstcol>
<lastcol>0</lastcol>
Run Code Online (Sandbox Code Playgroud)
因此,对于工作表名称,我们可以查询我使用的pagetitle节点。xmlstarlet