日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Qt通过ODBC读取excel文件

發布時間:2023/12/10 编程问答 27 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Qt通过ODBC读取excel文件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

之前替學校考試科用C++ Builder做過一個小的數據庫工具,處理excel表格用的,現在想轉換到Qt平臺下來,在網上搜了搜有一些利用OBDC讀取xls文件的教程:

http://hi.baidu.com/kxw102/item/770c496d5736470ca0cf0f1d

http://blog.sina.com.cn/s/blog_55758bcf0100d4lm.html

試了一下可以用,但是轉換到圖形界面中遇到點問題,在用QSqlTableModel類的setTable()方法使無法讀取到[Sheet1$]表格,將其換為QsqlQueryModel后問題解決。代碼如下:

頭文件mainWindow.h:

#ifndef mainWindow_H #define mainWindow_H#include <QWidget> #include <QTextEdit> #include <QSqlQueryModel>class QSqlTableModel; class QTableView;enum {Id = 0,Eat = 1,Taxi = 2,Train = 3 };class mainWindow : public QWidget {Q_OBJECTpublic:mainWindow();bool createConnection();void createFakeData();void printMessage(QString message);private:QSqlQueryModel *model;QTableView *view;QTextEdit *textEdit;};#endif

?

類定義文件mainWindow.cpp:

#include <QtGui> #include <QtSql>#include "mainWindow.h"mainWindow::mainWindow() {textEdit=new QTextEdit();if (!createConnection())return;model = new QSqlTableModel(this);model->setQuery("SELECT * FROM [Test$]");model->setHeaderData(Eat, Qt::Horizontal, tr("Eat"));model->setHeaderData(Taxi, Qt::Horizontal, tr("Taxi"));model->setHeaderData(Train, Qt::Horizontal, tr("Train"));view = new QTableView;view->setModel(model);view->setSelectionMode(QAbstractItemView::SingleSelection);view->setSelectionBehavior(QAbstractItemView::SelectRows);view->setColumnHidden(Id, false);view->resizeColumnsToContents();view->setEditTriggers(QAbstractItemView::NoEditTriggers);QHeaderView *header = view->horizontalHeader();header->setStretchLastSection(true);QVBoxLayout *mainLayout = new QVBoxLayout;mainLayout->addWidget(view);mainLayout->addWidget(textEdit);setLayout(mainLayout);setWindowTitle(tr("xlsProcessor")); }bool mainWindow::createConnection() {QSqlDatabase db = QSqlDatabase::addDatabase("QODBC");db.setDatabaseName("Driver={Microsoft Excel Driver (*.xls)};Readonly=0;DriverId=790;Dbq=D:\\test.xls;DefaultDir=D:\\");if (!db.open()){printMessage(tr("Database Error"));return false;}printMessage(tr("Connected Successed!"));return true; }void mainWindow::printMessage(QString message) {textEdit->append(message); }

?

最終效果:

?

轉載于:https://www.cnblogs.com/guaipojushi/archive/2012/11/18/2775995.html

總結

以上是生活随笔為你收集整理的Qt通过ODBC读取excel文件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。