如何在unix中将xlsx转换为csv

时间:2017-03-16 06:33:42

标签: bash unix ksh export-to-csv xlsx

我有一个文本文件(abc.txt),它将包含文件名以及要转换为.csv的路径。

我收到错误说

  

选定的导出器不支持在一个文件中保存多个工作表。

仅保存当前工作表。但它也没有为一个标签保存。

以下是我写过的查询

#!/bin/bash
CURRENT_DATE=date +'%d%m%Y'
Temp_Path=/my/first/path
cd $Temp_Path
#rm INBOUND_XLSX_FILES_.txt
find /my/second/path -name ".xlsx" >> "$Temp_Path/conversion.txt"
while IFS= read -r "f" ; do
    filename="${f%.*}"
    ssconvert "${filename}".xls
    "${filename}".csv
done < conversion.txt

1 个答案:

答案 0 :(得分:2)

对于具有多个工作表的.xlsx,您必须将每个工作表导出为单独的.csv文件。当然,不同的文件必须有不同的名称。

您可以使用%n

按号码为工作表命名
ssconvert --export-file-per-sheet "$filename.xlsx" "$filename-%n.csv"

或使用%s

按名称命名工作表
ssconvert --export-file-per-sheet "$filename.xlsx" "$filename-%s.csv"

您也可以使用速记符--export-file-per-sheet代替-S,而效果完全相同。