Respostas:
in2csv
fornece a opção --names
ou -n
para isso: [ Origem ]
-n, --names Display sheet names from the input Excel file.
No seu exemplo, o comando seria:
in2csv -n file1.xls
Acontece que esse recurso foi adicionado apenas na csvkit
1.0.2, que ainda não está disponível nas fontes oficiais de pacotes . Você precisa
instale-o via pip
com
sudo pip install csvkit
para obter a versão mais recente.
sudo apt remove python3-csvkit
e instalar um mais novo, de preferência a partir de packages.ubuntu.com ou de github.com/wireservice/csvkit/tree/1.0.2 . O recurso foi introduzido com este commit marcado como “1.0.2”, portanto, qualquer versão a partir daí deve ter essa opção.
in2csv
que chama /path/to/new/in2csv
no caso de ser chamado com a -n
opção e o habitual /usr/bin/in2csv
mais.
sudo apt remove python3-csvkit
, instalei o mais novo e funcionou. A função wrapper é muito útil, sim!
in2csv
é a opção mais simples, mas deixarei isso para o caso de alguém achar útil. Há um bom comando chamado xlhtml
para converter arquivos XLS em HTML ou XML. E uma vez que você tenha o XML, várias ferramentas de processamento XML podem ser usadas para fazer uma ampla variedade de consultas. Nesse caso:
$ xlhtml -xml ~/foo.xls | xmlstarlet sel -t -m '//pagetitle' -v . -n
Sheet1
Sheet2
O XML que xlhtml
gera é assim:
<?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>
Portanto, para os nomes das planilhas, podemos consultar os pagetitle
nós, para os quais eu useixmlstarlet
.
in2csv
falta de-n
opção. Estranho, tentando descobrir como obter o mais recente, mas tendo problemas com csvkit e remover mais velhosin2csv
... suspiro