Risposte:
in2csvdal csvkitpacchetto fornisce l' opzione --nameso -nper 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 csvkit1.0.2, che non è disponibile dalle fonti dei pacchetti ufficiali per le versioni precedenti a Bionic. Se usi Xenial devi farlo
installalo via pipcon
sudo pip install csvkit
per ottenere l'ultima versione.
sudo apt remove python3-csvkite 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.
in2csvche si chiama così chiama /path/to/new/in2csvnel caso sia chiamato con l' -nopzione e il solito /usr/bin/in2csvaltro.
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 xlhtmlper 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 xlhtmlgenera è 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 pagetitlenodi, per i quali ho usatoxmlstarlet .
in2csvcarente-n. Strano, cercando di capire come ottenere le ultime novità ma avendo problemi con csvkit e la rimozione di vecchiin2csv... sigh