Ich muss alle Blätter einer einzelnen XLS / XLSX-Datei in eine CSV-Datei konvertieren. Dies erfolgt für alle XLS-Dateien in allen Verzeichnissen und Unterverzeichnissen (rekursiv).
Schritt 1 : Holen Sie sich die Blattnamen aller .xls in eine .csv mit:
for file in $(find . -name '*.xls' -o -name '*.xlsx');do in2csv -n "$file" > ${file%.xls}-sheetnames-list.csv; done
filename-sheetnames-list.csv
kann als Liste dienen:
sheetname1
sheetname2
sheetname3
Schritt 2 : Der Code zum Konvertieren eines bestimmten Blattes in eine CSV-Datei mit in2csv lautet:
in2csv --sheet "SHEETNAME" filename.xls > filename-SHEETNAME.csv
Wie kann ich jeden Blattnamen in einer .xls / x-Datei abrufen und jedes Blatt separat für alle Verzeichnisse schreiben, die eine .xls / x enthalten?
in2csv --write-sheets "-" filename.xls > filename-sheet1.csv filename-sheet2.csv ....
Gibt die Ausgabe nur auf sheet1.csv aus, nicht sicher, wie alle Blätter daraus abgerufen werden sollen.
find
jedem.xls{,x}
Schleifen durchlaufen-exec
?