Название: Qt + excel не работает на других компьютера Отправлено: JayFOX от Февраль 16, 2010, 19:01 Здравствуйте.
Есть SDK qt 4.6 последняя, сборка по умолчанию. Подключаюсь к файлу *.xls вот так: Код: setDatabaseName("DRIVER={Microsoft Excel Driver (*.xls)};FIL={MS Excel}; DBQ=db.xls); "Driver not loaded". Сборка release. И пути прописывал, и наличие ODBC смотрела "панель управления -> администрирование" - присутствует, но результата нет. Помогите. Спасибо. Название: Re: Qt + excel не работает на других компьютера Отправлено: ufna от Февраль 16, 2010, 19:33 нужно с собой таскать DLL плагина. Нужный должен находиться в <Qt_Dir>/olugins/sqldrivers/.
Название: Re: Qt + excel не работает на других компьютера Отправлено: JayFOX от Февраль 16, 2010, 19:38 Спасибо. Это не помогает.
Название: Re: Qt + excel не работает на других компьютера Отправлено: pastor от Февраль 16, 2010, 19:58 В поиск по форуму - "Driver not loaded"
Название: Re: Qt + excel не работает на других компьютера Отправлено: NicK от Февраль 17, 2010, 08:27 Првильно ли я понимаю, что в Qt opensource edition этот функционал работы с msexcel отсутствует?
Название: Re: Qt + excel не работает на других компьютера Отправлено: Tonal от Февраль 17, 2010, 08:36 Правильно. :)
В любой Qt отсутствует функционал работы с msexcel. Но, в Qt присутствует работа с ODBC через QtSql плагин QODBC (открытый). А для ODBC существует драйвер работы с файлами msexcel под виндой. Топикстартер именно этой связкой и пользовался (Qt + QODBC + ODBC + ODBC MS Excel driver) Название: Re: Qt + excel не работает на других компьютера Отправлено: crossly от Февраль 17, 2010, 10:01 возможно плагин не в ту папку положили... должно быть в <app path>\sqldrivers\ .... + почистить Faled ветку реестра...
Название: Re: Qt + excel не работает на других компьютера Отправлено: Sergey B. от Февраль 17, 2010, 15:50 Название: Re: Qt + excel не работает на других компьютера Отправлено: Sergey B. от Февраль 17, 2010, 15:51 DSN запись для ODBC На целевом компьютере создавали? Может дело в этом?
Название: Re: Qt + excel не работает на других компьютера Отправлено: JayFOX от Февраль 17, 2010, 17:43 FileMon показал что программа всегда селезет в c:/qt/.../plugins
то есть папку в которой стоит qt на том компьютере, на котором собирали проект. Ищу решение. Название: Re: Qt + excel не работает на других компьютера Отправлено: JayFOX от Февраль 17, 2010, 17:58 crossly, спасибо, помогло.
А как можно сделать чтобы dll лежали в каталоге exe файла, а не именно в "sqldrivers"? Название: Re: Qt + excel не работает на других компьютера Отправлено: Kolobok от Февраль 17, 2010, 18:39 А как можно сделать чтобы dll лежали в каталоге exe файла, а не именно в "sqldrivers"? скопировать? ;) Название: Re: Qt + excel не работает на других компьютера Отправлено: lit-uriy от Февраль 18, 2010, 03:41 >>А как можно сделать чтобы dll лежали в каталоге exe файла, а не именно в "sqldrivers"?
никак Название: Re: Qt + excel не работает на других компьютера Отправлено: Tonal от Февраль 18, 2010, 08:34 С Ёкселем можно работать и через ODBC, и через ActiveX и через QProcess. Можно ещё напридумывать разные варианты... :) Но ни в одной версии Qt нет специального кода для работы именно с ёкселем. Вот для работы с ОренОфисом - есть. :) Название: Re: Qt + excel не работает на других компьютера Отправлено: NicK от Февраль 18, 2010, 08:47 Цитировать С Ёкселем можно работать и через ODBC, и через ActiveX и через QProcess. Меня интересует возможность в кроссплатформенной программе хотя бы базовой поддержки формата .xls(экспорт табличных данных).Насколькок я понимаю, ODBC в linux не прокатит, ActiveX тоже. Поясните, пожалуйста, как можно работать с excel через QProcess. Название: Re: Qt + excel не работает на других компьютера Отправлено: Tonal от Февраль 18, 2010, 12:45 Цитировать С Ёкселем можно работать и через ODBC, и через ActiveX и через QProcess. Меня интересует возможность в кроссплатформенной программе хотя бы базовой поддержки формата .xls(экспорт табличных данных).Насколькок я понимаю, ODBC в linux не прокатит, ActiveX тоже. Поясните, пожалуйста, как можно работать с excel через QProcess. Для кроссплатформенного экспорта табличных данных проще использовать csv или dbf. Они прекрасно открываются ёкселем. :) Так же есть вариант сохранить как html-таблицу с расширением xls - некоторые версии открывают. :) Есть формат XML понимаемый ёкселем. Кроме того, есть разные либы которые умеют писать и/или читать формат бинарный xls - можно их использовать. Я знаю 2 - обе под python. Опять же можно попробовать напрячь ООо Calc - он имеет кроссплатформенное АПИ и умеет сохранять в xls. Ну, в общем вариантов куча - выбирай в зависимости от потребности. :) Название: Re: Qt + excel не работает на других компьютера Отправлено: NicK от Февраль 18, 2010, 18:00 Цитировать Запускать, под виндой. Улыбнуло :) Цитировать Для кроссплатформенного экспорта табличных данных проще использовать csv или dbf. Они прекрасно открываются ёкселем. Так же есть вариант сохранить как html-таблицу с расширением xls - некоторые версии открывают. подержку сsv уже реализовал, но таким образом удобно скидывать только голые данные без оформления. Да. Знаем. excel умеет открывать таблицы в html, но не идеально. и без последующего редактирования все же не обойтись. Цитировать Есть формат XML понимаемый ёкселем. насчет xml сам уже задумывался. Цитировать Кроме того, есть разные либы которые умеют писать и/или читать формат бинарный xls - можно их использовать. Тянуть лишние библиотеки не хочу.Я знаю 2 - обе под python. Пока остановился на форматах CVS, HTML и ODF. Но MS Office 2003 не понимает odf. :-( Название: Re: Qt + excel не работает на других компьютера Отправлено: kkk777kkk от Февраль 19, 2010, 02:00 >>А как можно сделать чтобы dll лежали в каталоге exe файла, а не именно в "sqldrivers"? никак а если вкомпилить драйвер в QtSql4.dll, то достаточно носить с собой его и libmysql.dll :) Название: Re: Qt + excel не работает на других компьютера Отправлено: crossly от Февраль 22, 2010, 19:38 crossly, спасибо, помогло. об этом написано в документации.... просто по умолчанию QT ищет плагины в двух папках:А как можно сделать чтобы dll лежали в каталоге exe файла, а не именно в "sqldrivers"? 1. Куда была установлена QT + \plugins; 2. Папка приложения + \plugins. Название: Re: Qt + excel не работает на других компьютера Отправлено: Michael от Декабрь 27, 2010, 10:43 Цитировать А как можно сделать чтобы dll лежали в каталоге exe файла, а не именно в "sqldrivers"? Чтобы приложение при развертывании на целевой машине пользователя (предполагается ОС Windows) увидела плагины (в т.ч. и плагины SQL драйверов) необходимо показать библиотеке Qt путь к папке с программой (или плагинами), например так:Код: qApp->addLibraryPath("C:\MyOrganization\MyApp\plagins"); |