При сохранении в 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/.
Я вообще не работал с libreoffice из командной строки. Где я пишу/помещаю указанный макрос? – Catalin
Откройте LibreOffice и перейдите в раздел «Инструменты -> Макросы -> Организуйте макросы -> LibreOffice Basic'. Разверните «Мои макросы/Стандарт» и выберите «Модуль1». Добавьте сюда макрос, который поместит его в каталог [профиль пользователя] (https://wiki.documentfoundation.org/UserProfile) на вашем компьютере. –
Можно ли это сделать с терминала без использования интерфейса LibreOffice? – Catalin