如何使用 Linux 命令行打印电子表格的工作表名称?

csh*_*eth 11 command-line xls csv

我知道使用in2csv将特定工作表保存为 .csv:

in2csv --sheet "sheet name" file1.xls > sheet-name.csv

但是还有其他工具可以打印工作表名称吗?

也许 Perl 有选项?

des*_*ert 13

in2csvcsvkit包中提供了--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,则需要

以获取最新版本。

  • 我只是用 `sudo apt remove python3-csvkit` 删除它并安装一个更新的,最好从 https://packages.ubuntu.com/,或者从 https://github.com/wireservice/csvkit/tree /1.0.2。该功能是通过 [this](https://github.com/wireservice/csvkit/commit/829e176929934bade37cd85dded91df3413b44db#diff-a14fd01737ab485de9d4254287a53055)引入的。 (2认同)

mur*_*uru 8

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