Как конвертировать XLSX в CSV в Unix
У меня есть текстовый файл (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 ответ
Для.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
с точно таким же эффектом.