Saya perlu mengonversi semua lembar file .xls / .xlsx menjadi .csv. Ini akan dilakukan pada semua file .xls di semua direktori dan sub-direktori (secara rekursif).
Langkah 1 : Dapatkan nama-nama sheet dari semua .xls ke dalam .csv menggunakan:
for file in $(find . -name '*.xls' -o -name '*.xlsx');do in2csv -n "$file" > ${file%.xls}-sheetnames-list.csv; done
filename-sheetnames-list.csv
dapat bertindak sebagai daftar:
sheetname1
sheetname2
sheetname3
Langkah 2 : Kode untuk mengonversi lembar tertentu menjadi .csv menggunakan in2csv adalah:
in2csv --sheet "SHEETNAME" filename.xls > filename-SHEETNAME.csv
Bagaimana saya bisa mendapatkan setiap sheetname dalam .xls / x dan menulis setiap sheet secara terpisah untuk semua direktori yang mengandung .xls / x?
in2csv --write-sheets "-" filename.xls > filename-sheet1.csv filename-sheet2.csv ....
memberikan output hanya pada sheet1.csv, tidak yakin bagaimana mendapatkan semua sheet dari ini.
find
setiap.xls{,x}
dan menggunakan setiap lembar-exec
?