Qt通过odbc读取excel数据
2015-11-11 20:47
453 查看
传统的读取方式是通过Excel.Application,这种方式不仅操作繁琐,而且速度也不快。
通过odbc读取,可以使用select语句直接读取整个工作表,处理excel数据就跟数据库一样方便。
当然,这种方式也有不足:
1、excel表格必须只能有一行表头。
2、相对于Excel.Application,无法准确定位单元格。
3、工作表名相当于数据库表名,表头相当于字段名,所以excel格式必须的固定的,否则无法读取到数据
读取的代码如下:
通过odbc读取,可以使用select语句直接读取整个工作表,处理excel数据就跟数据库一样方便。
当然,这种方式也有不足:
1、excel表格必须只能有一行表头。
2、相对于Excel.Application,无法准确定位单元格。
3、工作表名相当于数据库表名,表头相当于字段名,所以excel格式必须的固定的,否则无法读取到数据
读取的代码如下:
//文件路径 QString filePath; //桌面打开
//Qt4 //QString desktopDir=QDesktopServices::storageLocation(QDesktopServices::DesktopLocation); //Qt 5 QString desktopDir=QStandardPaths::writableLocation(QStandardPaths::DesktopLocation); filePath=QFileDialog::getOpenFileName(parent,"选择Excel",desktopDir,"*.xls"); if(filePath.isNull()){ error="无法打开excel文件"; return; } //读取excel QSqlDatabase db = QSqlDatabase::addDatabase("QODBC","excel"); if( !db.isValid()) { error="数据库驱动异常"; return;
} QString dsn = "DRIVER={Microsoft Excel Driver (*.xls)};" "DSN='';DBQ="+filePath; db.setDatabaseName(dsn); // open connection if( !db.open()) { error="无法打开数据库"; return;
} QSqlQuery query(db); QSqlRecord record;
QString tableName = "sheet1$"; //sheet名,$是必须的 QString sql="select * from ["+tableName+"]";
相关文章推荐
- QT中实现图片淡出淡入的效果
- 【转】 Qt绘图,显示图片图像,平移,缩放,旋转和扭曲图片的方法 声明:本
- [转载]Qt图片缩放处理、旋转与扭曲
- QT中给各控件增加背景图片(可缩放可旋转)的几种方法
- Qt中图像的显示与基本操作
- [Qt]一个简单的Qt Widget多线程处理图像的例子
- Qt继电器控制板代码
- 在QT中使用静态对象
- Qt下如何使用libuv
- Qt学习点滴积累
- QT位置相关函数
- 自学QT之底层因为接收到操作系统信号而停止的解决方案
- Qt Creator的下载、安装及试用
- QT主窗口QMainWindow
- VS调试Qt程序时查看变量显示地址值问题解决
- qt 中各种常用对话框
- QML Item详解
- Qt数据库sqlite总结
- Qt中提高sqlite的读写速度
- Qt 的sqlite数据库的学习