Как конвертировать 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 с точно таким же эффектом.

Другие вопросы по тегам