Antworten:
in2csv
bietet die Option --names
oder -n
dafü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 csvkit
Version 1.0.2 hinzugefügt wurde , die noch nicht aus den offiziellen Paketquellen verfügbar ist . Sie müssen entweder
Installieren Sie es über pip
mit
sudo pip install csvkit
um die neueste Version zu erhalten.
sudo apt remove python3-csvkit
und 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.
in2csv
dass ruft /path/to/new/in2csv
an, falls es mit der -n
Option und dem üblichen /usr/bin/in2csv
sonst aufgerufen wird .
sudo apt remove python3-csvkit
das neuere verwendet , installiert und es hat funktioniert. Die Wrapper-Funktion ist ja sehr nützlich!
in2csv
ist die einfachere Option, aber ich lasse dies für den Fall, dass jemand es nützlich findet. Es gibt einen netten Befehl xlhtml
zum 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 xlhtml
generiert 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 pagetitle
Knoten abfragen , für die ich verwendet habexmlstarlet
.
in2csv
fehlender-n
Option habe. Seltsam, versucht herauszufinden, wie man das Neueste bekommt, hat aber Probleme mit csvkit und entfernt älterein2csv
...