我需要将单个.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:使用in2csv将特定工作表转换为.csv的代码是:
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上提供输出,不确定如何从中获取所有表。
@glennjackman这是Unix和Linux上的最佳话题。
—
terdon
find
每个.xls{,x}
而循环使用每个工作表-exec
?