J'ai besoin de convertir toutes les feuilles d'un seul fichier .xls / .xlsx en .csv. Cela se fera sur tous les fichiers .xls dans tous les répertoires et sous-répertoires (récursivement).
Étape 1 : Obtenez les noms de feuille de tous les .xls dans un .csv en utilisant:
for file in $(find . -name '*.xls' -o -name '*.xlsx');do in2csv -n "$file" > ${file%.xls}-sheetnames-list.csv; done
filename-sheetnames-list.csv
peut agir comme une liste:
sheetname1
sheetname2
sheetname3
Étape 2 : Le code pour convertir une feuille spécifique en .csv en utilisant in2csv est:
in2csv --sheet "SHEETNAME" filename.xls > filename-SHEETNAME.csv
Comment puis-je obtenir chaque nom de feuille dans un .xls / x et écrire chaque feuille séparément pour tous les répertoires contenant un .xls / x?
in2csv --write-sheets "-" filename.xls > filename-sheet1.csv filename-sheet2.csv ....
donne une sortie uniquement sur sheet1.csv, je ne sais pas comment obtenir toutes les feuilles à partir de cela.
find
chaque.xls{,x}
et boucle sur chaque feuille à l' aide-exec
?