Всем еще раз привет!
Пишу программу на qt, которая производит инженерные расчеты. Результаты расчетов выводятся на печать. Теперь начальника хочет, чтобы данные можно было экспортировать в электронные таблицы.... А именно: если речь о винде, то в экселе нарисовать соответсвующий бланк, размер ячеек, поместить в эти ячейки данные из программы. Цель экспорта: чтобы можно было редактировать некторые значения. Может быть изменять штамп. сам бланк. Есть ли в QT какие-нибудь средства для общения с...хм.... внешнимми программами... По типу COM? Надеюсь, я не криво объяснил
Или проще было бы написать самому программу (или модуль) с гуи, на ктором можно было бы и рисунки размещать, и линии рисовать, и текст править.... Короче по типу экселя?
Спасибо!
В Qt есть работа с ActiveX, смотри: http://www.doc.crossplatform.ru/qt/4.3.2/activeqt.html, но он для коммерческой версии Qt.
Я думаю проще было бы использовать не COM, а API. Того же Crystal Reports, который позволяет также через свой API экспорт в Word или Excel, и не обязательно использовать комерческую версию.
А вообще глянь в исходники нашего сайта: http://www.crossplatform.ru/taxonomy/term/44, может что и сгодится в качестве альтернативы.
Пошли начальнику подальше, я серьезно
Вот, когда стандарт Open Document Format станет повсеместным, тогда да.
Ух и любят у нас начальники с Excel'ем работать, что огорчает больше всего, так это то, что и пользователи любят скачивать таблицы в этом формате. А еще больше огорчает тот факт, что pdf формат циферки в виде текста хранит, что в итоге в большой объем выливается.
COM есть у коммерческой версии Qt. Но я никогда с ней не работал. В MinGW нет заголовков, чтобы работать с COM'ом. Вернее, теоретически сделать это можно на низком уровне, через API, но многое придется писать самому.
Я пошел иным путем. Генерю XML, который хавает Excel. Но тут есть подводные камни. Во первых xml не может хранить графики, картинки, прочее медиа, а также макросы. Формат может содержать символы, которые не приемлемы стандартом XML, но Microsoft их использует. Например libxml2 не дал мне записать символ перевода строки "#13". Я общался с разработчиком библиотеки откуда и узнал о проблемы. Решил путем повторного открытия xml файла в стриме и заменой "спец кода" - "__newline__" на нужную последовательность.
ViGOur
ок, спасибо.
SABROG
А Excel хавает через макросы, написанные на VBA? Т.е. парсит xml-файл и в зависимости от спецификации делает то, что нужно, идея такая? По-поводу графики: есть формульные картинки просто, но это можно решить: писать просто путь к файлу с картинкой и все.
Проще имхо макрос написать, который будет ломиться на SQL сервер и заполнять новую книгу. Благо макросы поддерживают SQL запросы.
Rocky, есть еще такая библиотечка: http://www.libexcel.com/. Но она тоже платная
А ежели можно обойтись только данными - используй CSV.
Его нормально читают и ёксель и OOo.
Да, вроде в 4.5 обещали поддержку ODF - можно будет напрямую генерить документы и таблицы для ООо.
Ок, спасибо ребят, буду копать
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)