示例代码:

  1. #include<QtCore/QCoreApplication>
  2. #include<QtSql>
  3. #include<QObject>
  4. #include<qdebug.h>
  5. int main(int argc,char*argv[])
  6. {
  7. QCoreApplication a(argc, argv);
  8. QSqlDatabase db =QSqlDatabase::addDatabase("QODBC");
  9. if(!db.isValid())
  10. {
  11. qDebug()<<"Type Error!";
  12. return0;
  13. }
  14. /*
  15. * Excel 2003
  16. * db.setDatabaseName("Driver={Microsoft Excel Driver (*.xls)};Readonly=0;DriverId=790;Dbq=d:\\temp\\book1.xls;DefaultDir=d:\\temp");
  17. */
  18. /*
  19. * Excel 2007及以上
  20. */
  21. QString connString =QString("Driver={Microsoft Excel Driver (*.xls, *.xlsx, *.xlsm, *.xlsb)};DBQ=%1")
  22. .arg("D:\\ProgramProject\\ODBC_Excel\\ODBC_Excel\\data.xlsx");
  23. db.setDatabaseName(connString);
  24. /*
  25. * 其他操作与数据库的操作是一样的
  26. */
  27. if( db.open())
  28. {
  29. qDebug()<<"Open Excel Successful!";
  30. QSqlQuery query(db);
  31. query.exec("select name,age from [sheet1$]");
  32. while(query.next())
  33. {
  34. QString strName = query.value(0).toString();
  35. QString strAge = query.value(1).toString();
  36. qDebug()<< strName << strAge;
  37. }
  38. }
  39. else
  40. qDebug()<< db.lastError().text();
  41. /*
  42. * 善后操作
  43. */
  44. db.close();
  45. db.removeDatabase(connString);
  46. return0;
  47. //return a.exec();//不进入事件循环,直接结束程序
  48. }

 

1、将Excel文件(例如book.xls)看成一个数据库,其中的每一个工作表(sheet)看成数据库表。假设Excel中的第一行为字段名,所以你定义的范围中必须要包括第一行的内容。

2、表的名字后面一定要加$和两边的方括号(插入一行数据,标准SQL语句,表名必须用[Excel文件名$]格式,读取Excel表中数据,标准SQL语句,表名必须用[表名$]格式),创建表时不需要这些。
  1. query.exec("CREATE TABLE guest (visitor text,age int,comments text)");//这个就是创建表的操作
  2. query.exec("insert into [sheet1$] values(1, 'Ane Brun',7)");//这个就是插入的操作
 
 
 
 
 
 
 
 
 
 

Qt通过ODBC来操作Excel的更多相关文章

  1. 在Qt中用QAxObject来操作Excel

        目录(?)[+]   下一篇:用dumpcpp工具生成的excel.h/excel.cpp来操纵Excel 最近写程序中需要将数据输出保存到Excel文件中.翻看<C++ GUI Pro ...

  2. 转 在Qt中用QAxObject来操作Excel

    最近写程序中需要将数据输出保存到Excel文件中.翻看<C++ GUI Programming with Qt 4>(Second Edition)发现可以在Qt中运用ActiveX控件, ...

  3. QT操作EXCEL

    介绍一下最基本的QT对EXCEL的读写操作. 声明:转载于:http://blog.csdn.net/czyt1988/article/details/52121360 在使用QT的操作数据库的时候, ...

  4. Qt QAxObject操作excel文件过程总结(转):

    正好同事问道Qt下操作excel. 转自:http://blog.csdn.net/a156392343/article/details/48092515 配制方面: 1.确保Excel软件在本地服务 ...

  5. Qt之操作Excel

    Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件. ...

  6. qt 操作excel表格

     自己编写的一个Qt C++类,用于操作excel表格,在Qt中操作excel需在.pro中增加CONFIG+=qaxcontainer配置. 1.打开Excel:objExcel = new QAx ...

  7. VS2010 C++ 操作Excel表格的编程实现

    转载请注明原文网址: http://www.cnblogs.com/xianyunhe/archive/2011/09/25/2190485.html 通过VC实现对Excel表格的操作的方法有多种, ...

  8. 在 VS2008 下操作 Excel 的方法总结

      这些天做个软件,需要读取 Excel 并导入到数据库中,所以研究了一下在 VC 下操作 Excel 的方法,这里做个总结,以作备忘. 一.最常用的 OLE 自动化方式 这个方式应该说是功能最全的方 ...

  9. 一个操作EXCEL的C#类ExcelUtils

    近期在公司里一直从事服务类的工作,涉及到非常多excel的处理.部分工作内容是每天反复的,仅仅是每天的数据不同而已.我遇到的一个问题是客户每天发送的几种数据有些excel中的字段顺序是一致的,有些是不 ...

随机推荐

  1. 解题:USACO12OPEN Bookshelf

    题面 从零开始的DP学习之肆 当DP方程中的一部分具有某种单调性时可以用数据结构或者预处理维护来降低复杂度 一开始没有看懂题,尴尬,后来发现题目可以简化成这个样子: 将一个序列划分为若干段,每段长度不 ...

  2. bzoj 4871: [Shoi2017]摧毁“树状图”

    4871: [Shoi2017]摧毁“树状图” Time Limit: 25 Sec  Memory Limit: 512 MBSubmit: 53  Solved: 9[Submit][Status ...

  3. [收藏转载链接]Opencv部分

    转载自-柳如风-http://www.cnblogs.com/rongfangliu/p/opencvlink.html [收藏夹整理]OpenCV部分   OpenCV中文论坛 OpenCV论坛 o ...

  4. hdu 6311 欧拉回路

    题意:求一个图(不一定联通)最小额外连接几条边,使得可以一笔画出来 大致做法 1.找出联通块 2.统计每一个连通块里面度数为奇数的点的个数, 有一个性质 一个图能够用一笔画出来,奇数点的个数不超过2个 ...

  5. Levenshtein Distance莱文斯坦距离算法来计算字符串的相似度

    Levenshtein Distance莱文斯坦距离定义: 数学上,两个字符串a.b之间的莱文斯坦距离表示为levab(|a|, |b|). levab(i, j) = max(i, j)  如果mi ...

  6. 1003 Emergency(25 分)

    As an emergency rescue team leader of a city, you are given a special map of your country. The map s ...

  7. Python【OS】模块

    import osprint(os.getcwd())#取当前工作目录#os.chmod("day6-os模块.py",2)#给文件/目录加权限,对Windows的下面不好使(1. ...

  8. 博世传感器调试笔记(三)加速度及地磁传感器BMC156

    一.    器件简介:1.    BMC 156是一款整合三轴地磁传感器与三轴(12bit)加速度传感器于一体的传感器,以BMC 150 电子罗盘模块为基础, 并与Bosch Sensortec 2x ...

  9. windows下使用tftp工具下载文件到开发板(linux)

    1.下载tftp工具,也可以上CSDN找个免费0积分的 http://www.52z.com/soft/11886.html 2.确保开发板和windows在同一网段 比如192.168.101.*段 ...

  10. IEnumerable 与 IQueryable

    无论是在ado.net EF或者是在其他的Linq使用中,我们经常会碰到两个重要的静态类Enumerable.Queryable,他们在System.Linq命名空间下.那么这两个类是如何定义的,又是 ...