示例代码:

  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. 【DP】【CF1099C】 Postcard

    Description 给定一个长度为 \(n\) 的字符串,尽可能包含小写字母,字符 '?' 和字符 '*'.保证上面两种特殊字符若出现则一定出现在一个小写字母的后面一位.要求构造一个长度为 \(k ...

  2. R语言计算moran‘I

    R语言计算moran‘I install.packages("maptools")#画地图的包 install.packages("spdep")#空间统计,m ...

  3. vs配置SP++3.0

    最近在研究信号处理的C语言算法,突然发现一个西安交大的师兄之前已经写出来了一个完整的库,同样是研究生三年,差别怎么这样大呢. 先从用轮子开始吧. 一.SP++3.0安装及测试 官网下载地址: http ...

  4. IOS方形头像如何变成圆形

    方法一:直接使用UIView对应图层的cornerRadius self.layer.cornerRadius     = CGRectGetWidth(self.bounds)/2.f; self. ...

  5. Kafka 0.8 Consumer处理逻辑

    0.前言 客户端用法: kafka.javaapi.consumer.ConsumerConnector consumer = kafka.consumer.Consumer.createJavaCo ...

  6. Perl file checking --- How to get information about a file

    There are some short expressions in Perl that allow you to test files, which is handy if you want to ...

  7. MAC 下用 Common Lisp 调试 OpenGL 程序

    MAC 下用 Common Lisp 调试 OpenGL 程序 环境搭建 运行环境: OSX 10.11.3 EI Capitan Common Lisp: SBCL 使用 SBCL, 首先要安装这几 ...

  8. SQL语句(十九)——存储过程(练习)

    select * From Student select * From Course select * from SC --INSERT INTO SC (Sno, Cno, Grade) --VAL ...

  9. [Luogu 3128] USACO15DEC Max Flow

    [Luogu 3128] USACO15DEC Max Flow 最近跟 LCA 干上了- 树剖好啊,我再也不想写倍增了. 以及似乎成功转成了空格选手 qwq. 对于每两个点 S and T,求一下 ...

  10. srpingboot2 session过期时间设置

    springboot2 设置session过期的配置 server.servlet.session.timeout = 1800 而不再是 server.session.timeout=1800