Можно ли пересохранить xls\xlsx документ в linux, с помощью API из командной строки?

Имеется большое количество разных входящих exel документов из разных неконтролируемых источников. Microsoft Office и LibreOffice корректно их отображают. Но если разбирать некоторые файлы, например, Roo (https://github.com/hmcgowan/roo - гем для ruby), то некоторые файлы выпадают с ошибкой OLE2 signature... ) Как я понимаю, дело в том, что экселевские файлы могут быть сформированы очень по-разному, с разным количеством дополнений (в стиле микрософтовского экселя, комментариев и т.д.), умные офисы умеют хорошо их отображать, а низкоуровневые инструменты - не особо.

Сейчас помогает открыть такой "неправильный" файл вручную в офисе (либре или микрософте) и тут же его пересохранить в формате microsoft exel 97\2003. И тогда все работает, как нужно.

Есть ли возможность делать это пересхоранение, с помощью какого-то апи офиса ?
Знаю, что есть, например, axlsx. Возможно, аналоги OLE, но, т.к. все уже работает и осталось только это, хотелось бы обойтись малой кровью и не искать новые сюрпризы
  • Вопрос задан
  • 2866 просмотров
Решения вопроса 1
Libre Office имеет интерфейс командной строки

Пример:
libreoffice -headless -convert-to xls ./*.xlsx
libreoffice --headless -convert-to xls ./file.xlsx -outdir ~/Desktop

Используем у нас, но не работает если в трее висит иконка, либо если офис уже запущен
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@proffard
Попробуйте spreadsheet gem.

Когда-то мы перешли именно на него с Roo.
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы