Comments 11
Cама постановка задачи автоматизировать генерацию/парсинг ODF-файлов с форматированием - это наследие эпохи Excel, от которого нужно уходить. Xlsx/ODS - это формат для визуального потребления человеком, а не для машинной автоматизации. Если бизнес-процесс требует закрасить ячейку в зеленый, если KPI > 100%, то в современной архитектуре это должно решаться не генерацией тяжелого XML-архива, а отдачей данных в BI-систему, дашборд или хотя бы генерацией HTML/PDF отчета.
Писать свой парсер ODF на lxml - это, конечно, героизм, но спецификация ODF (особенно в части наследования стилей и кэширования значений ячеек) — это минное поле. Если заказчик требует именно ODS с подсветкой, то на уровне архитектуры нужно «продавливать» требование: мы автоматизируем выгрузку данных в БД/API, а «красивый файл» пользователь формирует себе сам через шаблоны в своем «МойОфис» или LibreOffice. Иначе мы так и будем бесконечно перекладывать XML-теги из одного архива в другой, стоя на коврике из косточек.
Sarcasm: Поезд импортозамещения пронесся к станции Linux, а мы обнаружили, что забыли купить билеты в виде нормальных библиотек для Python :) Бизнесу на самом деле не нужен ODS. Бизнесу нужно, чтобы «циферки сошлись, а начальник увидел красное и зеленое». Наверняка уже где-то в недрах Минцифры пишется ТЗ на «Единый государственный формат табличных данных ... бла бла бла », который окажется еще страшнее, чем OOXML, а требовать его будут все.
В программной роботизации, к которой имею отношение, пока еще небольшая часть роботов работает с другими роботами и системами, не требующими человеческих глаз. Но существенная часть обеспечивает автоматизацию бизнес-процессов, в начале и в конце которых стоит "живой" специалист. Поэтому без форматирования никуда. "Гулял" по процессу xlsx, теперь "гуляет" ods - для заказчика не должно ничего поменяться.
Соль, соль‑то в чем
Соль в том, что рассказы про импонентозамещение офиса с распоряжениями от высоко сидящих лиц слышал ещё в 2008. Распоряжения с приказами есть, поэтому вспоминается история про Ксеркса приказавшего высечь подневольных граждан море.
Да, вон и ГОСТ как приняли в 2010 году, так на этом пока тишина. Но тогда не было импортозамещения и февраля 2022 года. Предполагаю (это не прогноз, сам в неведении), когда в отношении Microsoft в высоких кабинетах кто-то сильно ударит кулаком по столу, в части офисных форматов все очень быстро может завертеться.
Pandas содержит df.Styler() с почти полной Excel-расцветкой, усл. форматированием и барчартами в фоне ячеек. Да, там не все идеально, но из рендеров xlsx/ods это один из мощнейших и простых. Для сложного форматтинга есть pyuno с полным доступом к громадному api LibreOffice. Но туда лезут лишь отъявленные смельчаки (в основном зарубежные)
Были и отечественные специалисты.Я помню 2 мощнейших плагина тогда ещё для Оpen (не либра) - один для таблицы учет-оборот запчастей.2 й конвертер odf в fb2 и epub .Написано нашими соотечественниками .В нашей компании спецы поматерились но тоже перенесли таблицы на odf .Так теперь сумели это совместить с программой оптического распознавания электросчётчиков,не нужно вручную вбивать данные .Но вообще такое впечатление складывается что народ ждёт что "падишах" умрет и не нужно будет учить осла говорить.Не хотят спецы переучиваться на linux :-(
Не хотят изучать btrfs,кластеризацию,sane вообще у них ужас и т д.Есть VNC с виндой и всё нормально.
Аналитики данных в безопасности )). Жаль, в отношении текстовых документов нет ничего подобного, хотя бы уровня python-docx ((.
Добавлю практический нюанс: боль миграции создаёт не закрытая часть OOXML, а то, что открытую часть каждый редактор читает по-своему. Один и тот же xlsx в "МойОфисе", "Р7" и LibreOffice раскладывается по-разному – плывёт вёрстка, отваливаются формулы с именованными диапазонами, съезжают сводные таблицы. И самый крепкий замок тут даже не формат-контейнер, а VBA-макросы: их не переносит корректно почти никто, и держат бухгалтерию на Excel именно они, а не тайная часть спецификации.
Хоть не меня одного эта тема беспокоит. Лично для меня началось давно и с идеи - "я не хочу своим использованием поддерживать мелкософт" и я переполз на апачевский опенофис. Даже переучился с VBA на тамошний бейсик - всё заработало. И получается, что я уже очень давно смотрю на эту ситуацию со стороны и всё сильнее офигеваю - сейчас даже на гос.уровне навязывается пиратское использование "вражины"... и чем дальше, тем глубже...
Общался с одним из топов Р7 - так они гордятся тем, что "соответствуют супер-сложным-современным" форматам docX, xlsX...
Есть ли жизнь после Microsoft Office?