Risposte:
in2csv
dal csvkit
pacchetto fornisce l' opzione --names
o -n
per quello: [ Sorgente ]
-n, --names Display sheet names from the input Excel file.
Nel tuo esempio il comando sarebbe:
in2csv -n file1.xls
Questa funzione è stata aggiunta in csvkit
1.0.2, che non è disponibile dalle fonti dei pacchetti ufficiali per le versioni precedenti a Bionic. Se usi Xenial devi farlo
installalo via pip
con
sudo pip install csvkit
per ottenere l'ultima versione.
sudo apt remove python3-csvkit
e ne installerei uno più recente, preferibilmente da packages.ubuntu.com , oppure da github.com/wireservice/csvkit/tree/1.0.2 . La funzione è stata introdotta con questo commit taggato “1.0.2”, quindi qualsiasi versione da quella in poi dovrebbe avere questa opzione.
in2csv
che si chiama così chiama /path/to/new/in2csv
nel caso sia chiamato con l' -n
opzione e il solito /usr/bin/in2csv
altro.
sudo apt remove python3-csvkit
, installato quello più recente e ha funzionato. La funzione wrapper è molto utile sì!
in2csv
è l'opzione più semplice, ma la lascerò nel caso qualcuno la trovasse utile. C'è un bel comando chiamato xlhtml
per convertire i file XLS in HTML o XML. E una volta ottenuto l'XML, è possibile utilizzare vari strumenti di elaborazione XML per eseguire una vasta gamma di query su di esso. In questo caso:
$ xlhtml -xml ~/foo.xls | xmlstarlet sel -t -m '//pagetitle' -v . -n
Sheet1
Sheet2
L'XML che xlhtml
genera è così:
<?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>
Quindi, per i nomi dei fogli, possiamo interrogare i pagetitle
nodi, per i quali ho usatoxmlstarlet
.
in2csv
carente-n
. Strano, cercando di capire come ottenere le ultime novità ma avendo problemi con csvkit e la rimozione di vecchiin2csv
... sigh