2016-03-14 2 views
1

Как мне преобразовать в CSV ничего, кроме первого листа файла excel в CSV?libreoffice конвертировать все/определенные листы (ы) из excel в csv

Мой текущий код:

libreoffice --headless --convert-to csv --outdir data/csv_files data/excel_files/*.* 

Я хотел бы преобразовать п-й лист, или даже все листы, а не только первый.

Thx!

ответ

1

При сохранении в CSV LibreOffice сохраняет только активный лист. Команда
libreoffice --convert-to будет использовать первый лист.

Вместо использования --convert-to это относительно простая задача с макросами. Макрос просто должен активировать конкретный лист, а затем сохранить его как CSV. Если вы пишете макрос под названием «MyMacro1», который принимает имя листа, его можно запустить из командной строки следующим образом:

soffice macro:///Standard.Module1.MyMacro1("sheet 2") 

Некоторые примеры кода here. Также держите Andrew Pitonyak's Macro document под рукой.

В качестве альтернативы, это решение с использованием xslx2csv, которое я не пробовал: https://ask.libreoffice.org/en/question/46466/how-to-convert-specific-sheet-to-csv-via-command-line/.

+0

Я вообще не работал с libreoffice из командной строки. Где я пишу/помещаю указанный макрос? – Catalin

+0

Откройте LibreOffice и перейдите в раздел «Инструменты -> Макросы -> Организуйте макросы -> LibreOffice Basic'. Разверните «Мои макросы/Стандарт» и выберите «Модуль1». Добавьте сюда макрос, который поместит его в каталог [профиль пользователя] (https://wiki.documentfoundation.org/UserProfile) на вашем компьютере. –

+1

Можно ли это сделать с терминала без использования интерфейса LibreOffice? – Catalin

Смежные вопросы