Russian Qt Forum

Qt => XML => Тема начата: kolob от Декабрь 14, 2010, 17:44



Название: XLS to XML
Отправлено: kolob от Декабрь 14, 2010, 17:44
Добрый вечер! Возможно эта тема не совсем относится к Qt, но есть такая проблема. Большая проблема!
Есть большое количество файлов xls (финансовые отчеты), которые нужно преобразовать в xml файлы. В интернете ни чего нужного найти не получилось. Подобные программы в основном платные. Хотел найти небольшую утилиту, чтобы запустить как параллельный процесс к приложению.
Если кто сталкивался с подобным вопросом, отпишитесь.


Название: Re: XLS to XML
Отправлено: kolob от Декабрь 14, 2010, 21:35
Что ни кто не сталкивался с подобным? ???


Название: Re: XLS to XML
Отправлено: Fat-Zer от Декабрь 15, 2010, 03:55
По идее нужно будет макрос для оффиса написать.
Вот пример для ООО:
http://xmlhack.ru/texts/06/from-microsoft-to-openoffice/from-microsoft-to-openoffice.html
Для M$ можно наверное сделать что-то похожее...


Название: Re: XLS to XML
Отправлено: kolob от Декабрь 15, 2010, 08:00
Цитировать
По идее нужно будет макрос для оффиса написать.

Да наверно только так сделать получится. Больше решений я не знаю. Спасибо!


Название: Re: XLS to XML
Отправлено: twp от Декабрь 15, 2010, 11:23
Еще есть вариант это заюзать QtActiveX. Установить Excel в качестве COM-интерфейса, открыть файл и сохранить в нужном формате. Наверняка можно найти примеры реализации. Естественно такой способ прокатит под вендой, и кроме того должен стоять Excel не ниже 2007 http://ru.wikipedia.org/wiki/Microsoft_Excel#Office_Open_XML (http://ru.wikipedia.org/wiki/Microsoft_Excel#Office_Open_XML) Можно также автоматизировать OpenOffice, но опять же под венду, ибо как сказано здесь http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Bridge/Automation_Bridge (http://wiki.services.openoffice.org/wiki/Documentation/DevGuide/ProUNO/Bridge/Automation_Bridge) нормальной поддержки автоматизации в линукс еще нет.


Название: Re: XLS to XML
Отправлено: kolob от Декабрь 15, 2010, 22:57
Цитировать
Еще есть вариант это заюзать QtActiveX

Хороший способ, но очень уж медленный.