Помощь - Поиск - Пользователи - Календарь
Полная версия этой страницы: Существуют ли средства для экспорта данных в MS Excel/OpenOffice?
Форум на CrossPlatform.RU > Библиотеки > Qt > Qt Общие вопросы
Rocky
Всем еще раз привет!

Пишу программу на qt, которая производит инженерные расчеты. Результаты расчетов выводятся на печать. Теперь начальника хочет, чтобы данные можно было экспортировать в электронные таблицы.... А именно: если речь о винде, то в экселе нарисовать соответсвующий бланк, размер ячеек, поместить в эти ячейки данные из программы. Цель экспорта: чтобы можно было редактировать некторые значения. Может быть изменять штамп. сам бланк. Есть ли в QT какие-нибудь средства для общения с...хм.... внешнимми программами... По типу COM? Надеюсь, я не криво объяснил :(

Или проще было бы написать самому программу (или модуль) с гуи, на ктором можно было бы и рисунки размещать, и линии рисовать, и текст править.... Короче по типу экселя?

Спасибо!
ViGOur
В Qt есть работа с ActiveX, смотри: Каркас ActiveQt, но он для коммерческой версии Qt.

Я думаю проще было бы использовать не COM, а API. Того же Crystal Reports, который позволяет также через свой API экспорт в Word или Excel, и не обязательно использовать комерческую версию.

А вообще глянь в исходники нашего сайта: Qt Печать, может что и сгодится в качестве альтернативы.
SABROG
Пошли начальнику подальше, я серьезно :)

Вот, когда стандарт Open Document Format станет повсеместным, тогда да.

Ух и любят у нас начальники с Excel'ем работать, что огорчает больше всего, так это то, что и пользователи любят скачивать таблицы в этом формате. А еще больше огорчает тот факт, что pdf формат циферки в виде текста хранит, что в итоге в большой объем выливается.

COM есть у коммерческой версии Qt. Но я никогда с ней не работал. В MinGW нет заголовков, чтобы работать с COM'ом. Вернее, теоретически сделать это можно на низком уровне, через API, но многое придется писать самому.

Я пошел иным путем. Генерю XML, который хавает Excel. Но тут есть подводные камни. Во первых xml не может хранить графики, картинки, прочее медиа, а также макросы. Формат может содержать символы, которые не приемлемы стандартом XML, но Microsoft их использует. Например libxml2 не дал мне записать символ перевода строки "#13". Я общался с разработчиком библиотеки откуда и узнал о проблемы. Решил путем повторного открытия xml файла в стриме и заменой "спец кода" - "__newline__" на нужную последовательность.
Rocky
:)

ViGOur
ок, спасибо.

SABROG
А Excel хавает через макросы, написанные на VBA? Т.е. парсит xml-файл и в зависимости от спецификации делает то, что нужно, идея такая? По-поводу графики: есть формульные картинки просто, но это можно решить: писать просто путь к файлу с картинкой и все.
SABROG
Проще имхо макрос написать, который будет ломиться на SQL сервер и заполнять новую книгу. Благо макросы поддерживают SQL запросы.
Litkevich Yuriy
Rocky, есть еще такая библиотечка: libexcel. Но она тоже платная
Tonal
А ежели можно обойтись только данными - используй CSV.
Его нормально читают и ёксель и OOo.

Да, вроде в 4.5 обещали поддержку ODF - можно будет напрямую генерить документы и таблицы для ООо. :)
Rocky
Ок, спасибо ребят, буду копать :)
Для просмотра полной версии этой страницы, пожалуйста, пройдите по ссылке.
Форум IP.Board © 2001-2021 IPS, Inc.