Я хочу знать, есть ли инструмент Linux или сценарий для преобразования файла .xlsx в .txt .
7 ответов
Другой способ - переименовать его в .zip и разархивировать, поскольку все файлы. *** x - это просто заархивированные папки, содержащие xml. Внутри вы найдете папку "xl" с подпапкой "рабочие листы", внутри - XML-файл для каждого рабочего листа. Их формат довольно прост и должен легко разбираться с любым из пакетов xml.
Я не знаю об инструменте в Linux, но вы можете использовать Google Docs.
Вы загружаете туда электронную таблицу и затем можете экспортировать ее в виде текста.
Если это просто текстовые / числовые данные (которые я должен предположить, иначе текстовый файл будет немного амбициозным), тогда вы можете попробовать xlsx2csv для создания файлов CSV из ваших электронных таблиц.
Я не могу ручаться за его эффективность, но стоит попробовать.
Не сценарий оболочки (в отличие от сценария, упомянутого в посте Энди от 20.10.10 в 8:44), а сценарий python:
с тем же именем, xlsx2csv
Это экспортирует значения даты как float, хотя:
2012/07/01 => 41091,
"2012/07/01 01:00:00" => 41091.0416666667
xlsx2csv.py --help 
Usage: xlsx2csv.py [options] infile [outfile]
Options:
  --version             show program's version number and exit
     -h, --help            show this help message and exit
      -s SHEETID, --sheet=SHEETID
                            sheet no to convert (0 for all sheets)
      -d DELIMITER, --delimiter=DELIMITER
                            delimiter - csv columns delimiter, 'tab' or 'x09' for
                            tab (comma is default)
      -p SHEETDELIMITER, --sheetdelimiter=SHEETDELIMITER
                            sheets delimiter used to separate sheets, pass '' if
                            you don't want delimiters (default '--------')
      -f DATEFORMAT, --dateformat=DATEFORMAT
                            override date/time format (ex. %Y/%m/%d)
      -i, --ignoreempty     skip empty lines
      -r, --recursive       convert recursively
Не командная строка, но OpenOffice может читать файлы .xslx и сохранять как csv. Это, вероятно, уже на вашем компьютере Linux.
Я использовал команду ниже, чтобы преобразовать все мои файлы xlsx в текущем каталоге (должен быть установлен Libre Office):
for i   in *.xlsx; do  libreoffice --headless --convert-to csv "$i" ; done
