6

Я хочу знать, есть ли инструмент Linux или сценарий для преобразования файла .xlsx в .txt .

7 ответов7

8

Другой способ - переименовать его в .zip и разархивировать, поскольку все файлы. *** x - это просто заархивированные папки, содержащие xml. Внутри вы найдете папку "xl" с подпапкой "рабочие листы", внутри - XML-файл для каждого рабочего листа. Их формат довольно прост и должен легко разбираться с любым из пакетов xml.

6

Инструмент ssconvert , который поставляется с Gnumeric, может конвертировать файлы xlsx в текст:

ssconvert Book1.xlsx file.csv
3

Я не знаю об инструменте в Linux, но вы можете использовать Google Docs.

Вы загружаете туда электронную таблицу и затем можете экспортировать ее в виде текста.

3

Если это просто текстовые / числовые данные (которые я должен предположить, иначе текстовый файл будет немного амбициозным), тогда вы можете попробовать xlsx2csv для создания файлов CSV из ваших электронных таблиц.

Я не могу ручаться за его эффективность, но стоит попробовать.

2

Не сценарий оболочки (в отличие от сценария, упомянутого в посте Энди от 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
1

Не командная строка, но OpenOffice может читать файлы .xslx и сохранять как csv. Это, вероятно, уже на вашем компьютере Linux.

1

Я использовал команду ниже, чтобы преобразовать все мои файлы xlsx в текущем каталоге (должен быть установлен Libre Office):

for i   in *.xlsx; do  libreoffice --headless --convert-to csv "$i" ; done

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .