Мне нужно преобразовать все листы одного файла .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
?