• 13683阅读
  • 7回复

QT通过ODBC访问Excel文件 [复制链接]

上一主题 下一主题
离线xcykkk
 
只看楼主 倒序阅读 楼主  发表于: 2009-03-31
下面只写出关键语句。
例子程序只给出一个,select查询的,其他操作都类似。细心研究!


#include <QtSql>
#include <QtGui>
int main( int argc, char *argv[] ){
QApplication app( argc, argv );
QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");
db.setDatabaseName("Driver={Microsoft Excel Driver (*.xls)};Readonly=0;DriverId=790;Dbq=d:\\temp\\book1.xls;DefaultDir=d:\\temp");
if ( db.open()){
  QSqlQuery query;
  query.exec("select name,age from [sheet1$]");
  while (query.next()) {
   QString title = query.value(0).toString();
   QString author = query.value(1).toString();
   QMessageBox::critical(0, title,author);
  }
  
}
else {
  QMessageBox::critical(0, QObject::tr("Database Error"),db.lastError().text());
  return 0;
}
return app.exec();
}



query.exec("CREATE TABLE guest (visitor text,age int,comments text)");        //这个就是创建表的操作
query.exec("insert into [sheet1$] values(1, 'Ane Brun',7)");                                                             //这个就是插入的操作


注:1.假设在你的D盘temp文件夹下有个book1.xls文件。
    2.表的名字后面一定要加$和两边的方括号,创建表时不需要这些。
离线awolfa
只看该作者 1楼 发表于: 2009-04-02
好使吗?你用的qt那个版本?
一头扎进Qt
离线xcykkk
只看该作者 2楼 发表于: 2009-04-03
回 1楼(awolfa) 的帖子
好使!
我现在正在研究这个问题呢!
我现在用的是QT4.5版本!
离线5706046

只看该作者 3楼 发表于: 2009-07-10
貌似你的不行啊!
离线5706046

只看该作者 4楼 发表于: 2009-07-24
好帖子,定一个!
离线loong_xu
只看该作者 5楼 发表于: 2009-10-13
那是相当好的帖子啊,狂谢啊
离线quchong10527

只看该作者 6楼 发表于: 2010-07-08
好贴,现在正在找这个呢!顶一个!
离线尘中远

只看该作者 7楼 发表于: 2013-10-16
回 楼主(xcykkk) 的帖子
我想获取有什么内容的sheet,于是用QSqlDatabase 的tables方法,发现里面中文乱码,请问有解决方法吗
快速回复
限100 字节
 
上一个 下一个