Devo convertire tutti i fogli di un singolo file .xls / .xlsx in un .csv. Questo sarà fatto su tutti i file .xls in tutte le directory e sottodirectory (ricorsivamente).
Passaggio 1 : ottieni i nomi dei fogli di tutti i .xls in un .csv usando:
for file in $(find . -name '*.xls' -o -name '*.xlsx');do in2csv -n "$file" > ${file%.xls}-sheetnames-list.csv; done
filename-sheetnames-list.csv
può agire come un elenco:
sheetname1
sheetname2
sheetname3
Passaggio 2 : Il codice per convertire un foglio specifico in un .csv utilizzando in2csv è:
in2csv --sheet "SHEETNAME" filename.xls > filename-SHEETNAME.csv
Come posso ottenere ogni nome di foglio in un .xls / x e scrivere ogni foglio separatamente per tutte le directory che contengono un .xls / x?
in2csv --write-sheets "-" filename.xls > filename-sheet1.csv filename-sheet2.csv ....
fornisce output solo su sheet1.csv, non sono sicuro di come ottenere tutti i fogli da questo.
find
tutti.xls{,x}
e scorrere su ogni foglio usando-exec
?