Antworten:
in2csvbietet die Option --namesoder -ndafür: [ Quelle ]
-n, --names Display sheet names from the input Excel file.
In Ihrem Beispiel wäre der Befehl:
in2csv -n file1.xls
Es stellt sich heraus, dass diese Funktion erst in csvkitVersion 1.0.2 hinzugefügt wurde , die noch nicht aus den offiziellen Paketquellen verfügbar ist . Sie müssen entweder
Installieren Sie es über pipmit
sudo pip install csvkit
um die neueste Version zu erhalten.
sudo apt remove python3-csvkitund ein neueres installieren, vorzugsweise von packages.ubuntu.com oder auch von github.com/wireservice/csvkit/tree/1.0.2 . Die Funktion wurde mit diesem Commit mit dem Tag "1.0.2" eingeführt, daher sollte jede Version ab diesem Zeitpunkt diese Option haben.
in2csvdass ruft /path/to/new/in2csvan, falls es mit der -nOption und dem üblichen /usr/bin/in2csvsonst aufgerufen wird .
sudo apt remove python3-csvkitdas neuere verwendet , installiert und es hat funktioniert. Die Wrapper-Funktion ist ja sehr nützlich!
in2csvist die einfachere Option, aber ich lasse dies für den Fall, dass jemand es nützlich findet. Es gibt einen netten Befehl xlhtmlzum Konvertieren von XLS-Dateien in HTML oder XML. Sobald Sie über XML verfügen, können verschiedene XML-Verarbeitungstools verwendet werden, um eine Vielzahl von Abfragen durchzuführen. In diesem Fall:
$ xlhtml -xml ~/foo.xls | xmlstarlet sel -t -m '//pagetitle' -v . -n
Sheet1
Sheet2
Das XML, das xlhtmlgeneriert wird, sieht folgendermaßen aus:
<?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>
Für die Blattnamen können wir also die pagetitleKnoten abfragen , für die ich verwendet habexmlstarlet .
in2csvfehlender-nOption habe. Seltsam, versucht herauszufinden, wie man das Neueste bekommt, hat aber Probleme mit csvkit und entfernt älterein2csv...