Russian Qt Forum
Ноябрь 24, 2024, 02:48 *
Добро пожаловать, Гость. Пожалуйста, войдите или зарегистрируйтесь.
Вам не пришло письмо с кодом активации?

Войти
 
  Начало   Форум  WIKI (Вики)FAQ Помощь Поиск Войти Регистрация  

Страниц: [1] 2   Вниз
  Печать  
Автор Тема: как можно подключится к Excel  (Прочитано 17871 раз)
Evgeniya
Гость
« : Август 19, 2009, 17:42 »

Здраствуйте еще раз!!!! Улыбающийся
У меня такой вопрос...как можно подключится к Excel через QSqlDatabase

Код
C++ (Qt)
QSqlDatabase d=QSqlDatabase::addDatabase("QODBS");
d.setDatabaseName("DRIVER={Microsoft Excel Driver (*.xls)};FIL={MS Excel};
DBQ=D:\Qt\proba\release\file.xls"
);
if(d.open())
QMessageBox::information(0,"ок","подключено");
else
QMessageBox::critical(0,"Ошибка подключения",d.lastError().text());
 
так не получается подключится
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #1 : Август 19, 2009, 18:10 »

D:\\Qt\\proba\\release\\file.xls
Или лучше D:/Qt/proba/release/file.xls
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Evgeniya
Гость
« Ответ #2 : Август 19, 2009, 18:22 »

D:\\Qt\\proba\\release\\file.xls
Или лучше D:/Qt/proba/release/file.xls

Не помогает...пишет: Driver not loaded  Грустный
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #3 : Август 19, 2009, 18:54 »

Улыбающийся В поиск по фразе Driver not loaded.
Тьфу, QODBС
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Evgeniya
Гость
« Ответ #4 : Август 19, 2009, 19:03 »

Точно!!! Смеющийся
Спасибочки!!!
Записан
Evgeniya
Гость
« Ответ #5 : Август 26, 2009, 19:36 »

Может кто-нибудь подскажет, как можно добавить данные в таблицу Excel??
делаю так:
Код
C++ (Qt)
dbExl=QSqlDatabase::addDatabase("QODBC");
dbExl.setDatabaseName("DRIVER={Microsoft Excel Driver (*.xls)};FIL={MS Excel};DBQ=" + qApp->applicationDirPath().replace("/","\\") + "\\data\\report.xls");
if(!dbExl.open()){
QMessageBox::critical(0,"Error",dbExl.lastError().text());
}
QSqlQuery query=QSqlQuery(dbExl);
      query2.exec("INSERT INTO temp([Name auction],[Name_LPU],"
        "[Name_LS],[Summa]) "
        "values(fghbfg,gffhgh,gbhfc,67)");
        QMessageBox::critical(0,"Error",query2.lastError().text());
 
Выдается ошибка:
[Microsoft][Драйвер ODBC Excel] Объект 'temp' не найден ядром базы данных Microsoft Jet.
Записан
Пантер
Administrator
Джедай : наставник для всех
*****
Offline Offline

Сообщений: 5876


Жаждущий знаний


Просмотр профиля WWW
« Ответ #6 : Август 26, 2009, 19:53 »

query2 - очепятка?
Сама таблица temp существует?
Записан

1. Qt - Qt Development Frameworks; QT - QuickTime
2. Не используйте в исходниках символы кириллицы!!!
3. Пользуйтесь тегом code при оформлении сообщений.
Evgeniya
Гость
« Ответ #7 : Август 26, 2009, 20:00 »

query2 - очепятка?
Ага,опечатка..
Сама таблица temp существует?

Ну да, я в Excel создала лист temp с вышеперчисленными полями...

Может быть вообще так нельзя делать??
« Последнее редактирование: Август 26, 2009, 20:17 от Evgeniya » Записан
NicK
Гость
« Ответ #8 : Март 02, 2010, 14:55 »

Я делаю так:

Код
C++ (Qt)
   QString excelFilePath="C:\\test.xls";
   if (QFile::exists(excelFilePath))QFile::remove(excelFilePath);
   QString strDBName = QString("DRIVER={Microsoft Excel Driver (*.xls)};FIL={MS Excel}; READONLY=FALSE;DBQ="+excelFilePath);
   {
       QSqlDatabase db = QSqlDatabase::addDatabase("QODBC","xls_db");
       db.setDatabaseName(strDBName);
       if (!(db.open())) qDebug()<<"DEBUG: "<<"open DB failed. "<<db.lastError();
       else {
           QSqlQuery query(db);
           if (!query.exec("CREATE TABLE `testdb` (aaa CHAR(128), bbb CHAR(128))"))qDebug()<<"DEBUG: "<<"query exec error. table create failed."<<query.lastError();
           else {
               qDebug()<<"DEBUG: "<<"table created. inserting values...";
               if (!query.exec("INSERT INTO testdb VALUES ('"+tr("blebleble")+"', '"+tr("blblabla")+"')"))qDebug()<<"DEBUG: "<<"query exec error. insert values failed."<<query.lastError();
               else {
 
               };
           };
           qDebug()<<"DEBUG: "<<"closing DB..."; db.close();
       };
   };qDebug()<<"DEBUG: "<<"remove connection.";QSqlDatabase::removeDatabase("xls_db");


Подскажите, пожалуйста, что нужно сделать чтоб вставлять форматированные данные в excel(цвет шрифта, ячеек, выравнивание)?
Если это вообще реально  Улыбающийся
Записан
JayFOX
Гость
« Ответ #9 : Март 02, 2010, 20:50 »

Попробуй через ActiveQt
Записан
NicK
Гость
« Ответ #10 : Март 03, 2010, 09:09 »

Попробуй через ActiveQt
У меня Qt Opensource Edition. ActiveX там не поддерживается.
Записан
lit-uriy
Джедай : наставник для всех
*******
Offline Offline

Сообщений: 3880


Просмотр профиля WWW
« Ответ #11 : Март 03, 2010, 09:57 »

>>ActiveX там не поддерживается.
Он поддерживается, если компиллер студийный
Записан

Юра.
NicK
Гость
« Ответ #12 : Март 03, 2010, 13:49 »

mingw + Qt  :-(
Записан
Dimich
Гость
« Ответ #13 : Март 04, 2010, 11:19 »

Почему не использовать формат Excel 2003 xml? Там и формат страницы и параметры ячейки.
Записан
NicK
Гость
« Ответ #14 : Март 04, 2010, 13:52 »

Почему не использовать формат Excel 2003 xml? Там и формат страницы и параметры ячейки.
уже. :-)
но формат .xls тоже нужен.
« Последнее редактирование: Март 04, 2010, 14:05 от NicK » Записан
Страниц: [1] 2   Вверх
  Печать  
 
Перейти в:  


Страница сгенерирована за 0.658 секунд. Запросов: 22.