Мені потрібно конвертувати всі аркуші одного .xls / .xlsx файлу в .csv. Це буде зроблено для всіх файлів .xls у всіх каталогах та підкаталогах (рекурсивно).
Крок 1. Отримайте назви аркушів усіх .xls у .csv, використовуючи:
for file in $(find . -name '*.xls' -o -name '*.xlsx');do in2csv -n "$file" > ${file%.xls}-sheetnames-list.csv; done
filename-sheetnames-list.csv
може виступати як список:
sheetname1
sheetname2
sheetname3
Крок 2 : Код для перетворення конкретного аркуша в .csv за допомогою in2csv:
in2csv --sheet "SHEETNAME" filename.xls > filename-SHEETNAME.csv
Як я можу отримати кожне ім'я аркуша у .xls / x і написати кожен аркуш окремо для всіх каталогів, що містять .xls / x?
in2csv --write-sheets "-" filename.xls > filename-sheet1.csv filename-sheet2.csv ....
дає вихід лише на sheet1.csv, не знаючи, як отримати з цього всі аркуші.
find
кожен.xls{,x}
і петля над кожним листом, використовуючи-exec
?