Qt通过ODBC读取excel文件
来源:互联网 发布:如何用c语言编魔塔 编辑:程序博客网 时间:2024/05/17 08:59
之前替学校考试科用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);}
最终效果:
0 0
- Qt通过ODBC读取excel文件
- 使用ODBC读取excel文件
- QT通过ODBC访问Excel表
- Qt读取excel文件
- 直接通过ODBC读写Excel表格文件
- 直接通过ODBC读写Excel表格文件
- 如何通过ODBC访问excel文件
- 直接通过ODBC读写Excel表格文件
- 直接通过ODBC 读写Excel表格文件
- 直接通过ODBC读写Excel表格文件
- 直接通过ODBC读写Excel表格文件
- 通过ODBC读写Excel表格文件
- 直接通过ODBC读写Excel表格文件
- 直接通过ODBC读写Excel表格文件
- 直接通过ODBC读写Excel表格文件
- 直接通过ODBC读写Excel表格文件
- 直接通过ODBC读写Excel表格文件
- C语言通过ODBC读写Excel表格文件(ODBC)
- cause与reason的区别
- linux网络编程之-----多播(组播)编程
- LeetCode(160) Intersection of Two Linked Lists
- func_get_args的使用
- 【实用的第三方们】环信 - 5分钟,为你的应用加入移动IM功能
- Qt通过ODBC读取excel文件
- Zookeeper 安装和配置
- RSA算法
- pull,SAX和DOM解析的区别
- 【LeetCode】Construct Binary Tree from Inorder and Postorder Traversal
- warning:function "bsp_read_word" declared implicitly错误原因
- makefile 中可以提供operation的动作分类——为什么command需要tab键
- Project Eluer - 21
- php 内核