powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как выгрузить данные в LibreOffice *.ods
6 сообщений из 6, страница 1 из 1
Как выгрузить данные в LibreOffice *.ods
    #39647331
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Нужно из программы на C++/QT выгрузить данные в файл с таблицами LibreOffice. Есть рыба (шаблон), в которой на нескольких листах размечены заготовки таблиц - название документа, всякие подписи-утверждения, шапка таблицы. Из программы, которая считает, нужно в таблицы, размещённые на разных листах, вставить строки и заполнить их данными.

Скачал SDK для LibreOffice, посмотрел там примеры для C++ - вообще не понял, что они там делают и зачем. Документация - то же самое, вид сбоку, там описания каких-то левых классов и совсем уж абстрактных типов данных. Похоже, что этот SDK работает как-то совсем иначе.

Поискал на форуме - есть пара примеров, но они основаны на использование OLE, мне же надо, чтоб всё это крутилось под Linux.

Коллеги, направьте - каким образом этот SDK использовать?
...
Рейтинг: 0 / 0
Как выгрузить данные в LibreOffice *.ods
    #39648413
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gamych,
Есть старый 2007г. закрытый проект на С++ Ананас , исходники на sf.net .

Разработчики ананаса предложили делать шаблон отчета *.ods со вставленными ключевыми словами.
Порядок следующий:
Распаковываешь шаблон как ZIP архив.

Распариваешь XML.

Заменяешь ключевые слова табличными данными.

Запаковываешь XML в ZIP архив.

Открываешь в LibreOffice

Ключевой файл см. aootemplate.cpp

Есть нюансы реализации, если интересно расскажу дальше...
...
Рейтинг: 0 / 0
Как выгрузить данные в LibreOffice *.ods
    #39652925
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sereginseregin, спасибо конечно, но как-то это неканонично выглядит. Есть же специально для этого SDK, зачем внутрь файлов лезть?


Я подразобрался маленько, в SDK примеров на C++ и вправду очень мало, но зато много примеров на Java. Их смотреть надо, они через те же интерфейсы работают, что и плюсовые, так что понять, что и в какой последовательности делать, можно и по явовским примерам. А дальше уже дело техники.
...
Рейтинг: 0 / 0
Как выгрузить данные в LibreOffice *.ods
    #39652998
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gamych Есть же специально для этого SDK, зачем внутрь файлов лезть?
Есть стандарт описания внутренностей OpenDocument, там обычный XML, для того и сделан, чтобы генерить файл самостоятельно.

Трудоемкость работы с xml или sdk будет одинаковая. Но для xml полно готовых стандартных библиотек, хоть как текст, напрямую работай, а sdk еще в проект вкомпилить надо, еще вопросы по кроссплатформенности и дополнительной настройке у пользователя.

Мы и стандартом OpenDocument особо не пользовались, только в совсем сложных случаях разбирали. А так лезли в ods напрямую, смотрели как наши теги в XML сохранились, дальше код генерации по факту допиливали. Никакой привязки к Open-Libre-Microsoft офису. Что у пользователя стоит, тем он и открывает отчет.
...
Рейтинг: 0 / 0
Как выгрузить данные в LibreOffice *.ods
    #39653592
gamych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
sereginsereginТрудоемкость работы с xml или sdk будет одинаковая.
Сильно сомневаюсь. Мине уже сдаётся, что через SDK проще и, главное, наглядней код, чем напрямую XML генерить. Ещё б ладно на яве, JAXB сильно упрощает, но на плюсах формировать непосредственно документ, заглядывая поминутно в схему... Данунах.

Потом этот код ни на кого не спихнёшь для сопровождения.

Короче, решил и делаю через SDK. Простите, если не оправдал ожиданий :)
...
Рейтинг: 0 / 0
Как выгрузить данные в LibreOffice *.ods
    #39653699
sereginseregin
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
gamychsereginsereginТрудоемкость работы с xml или sdk будет одинаковая.
Сильно сомневаюсь. Мине уже сдаётся, что через SDK проще и, главное, наглядней код, чем напрямую XML генерить.
Я же не говорил, что каждый отчет нужно в XML заглядывать.
Как раз тут нужен свой sdk - достаточно одной универсальной функции, в которую передаешь имя файла с шаблоном, несколько наборов данных, эта функция сама по шаблону данные раскидывает. Клепай себе такие отчеты вообще не задумываясь об XML.

В Аананасе на С++ подобная функция уже реализована, берешь их реализацию как готовый sdk. Eсть тока некоторые нюансы со стандартом OpenDocument, которые возможно допилить придется.
...
Решает каждый конечно сам!
...
Рейтинг: 0 / 0
6 сообщений из 6, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / Как выгрузить данные в LibreOffice *.ods
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]