Я знаю об использовании in2csv
сохранить конкретный рабочий лист как .csv:
in2csv --sheet "sheet name" file1.xls > sheet-name.csv
Но есть ли какие-либо другие инструменты, чтобы просто распечатать sheetnames?
Возможно, существуют опции с Perl?
in2csv
предоставляет опцию --names
или -n
для этого: [ Source ] sup>
-n, --names Display sheet names from the input Excel file.
В вашем примере команда будет be:
in2csv -n file1.xls
Оказывается, эта функция была добавлена только в csvkit
1.0.2, которая пока недоступна из официальных источников пакетов . Вам нужно либо
установить ее через pip
с
sudo pip install csvkit
, чтобы получить последнюю версию.
in2csv
более простая опция, но я оставлю это в случае, если кто-то мог бы найти это полезным. Существует хорошая названная команда xlhtml
для преобразования файлов XLS к HTML или XML. И после того как у Вас есть XML, различные инструменты обработки XML могут использоваться, чтобы сделать большое разнообразие запросов на нем. В этом случае:
$ xlhtml -xml ~/foo.xls | xmlstarlet sel -t -m '//pagetitle' -v . -n
Sheet1
Sheet2
XML это xlhtml
генерирует похож так:
<?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>
Так, для имен листа мы можем запросить pagetitle
узлы, для которых я использовал xmlstarlet
.