Qt通过ODBC来操作Excel

示例代码:

  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. return 0;
  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. return 0;
  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)"); //这个就是插入的操作

来自为知笔记(Wiz)

时间: 2024-08-15 21:30:25

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

Qt操作excel

QAxWidget excel("Excel.Application");1) 显示当前窗口:excel.setProperty("Visible", true);2) 更改 Excel 标题栏:excel.setProperty("Caption", "Invoke Microsoft Excel");3) 添加新工作簿:QAxObject * workbooks = excel.querySubObject("W

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

正好同事问道Qt下操作excel. 转自:http://blog.csdn.net/a156392343/article/details/48092515 配制方面: 1.确保Excel软件在本地服务器注册成功,没注册成功的可以通过 在运行中"E:\program Files\Microsoft Office\Office12\EXCEL.EXE" /regserver 手动注册,注意路径要用自己的excel路径. 2.确保组件配制正确,运行命令:dcomcnfg,查看DCOM配置下是

QT 操作excel 类封装

1 # pro file 2 [plain] view plaincopy 3 CONFIG += qaxcontainer 4 5 QT += core 6 7 QT -= gui 8 9 TARGET = QExcel 10 CONFIG += console 11 CONFIG -= app_bundle 12 13 TEMPLATE = app 14 15 16 SOURCES += main.cpp \ 17 qexcel.cpp 18 19 HEADERS += \ 20 qexce

ODBC操作excel

//ODBC连接Excel public static void main(String[] args) {  Connection conn = null;  Statement stm = null;  ResultSet rs = null;  try {   //加载ODBC驱动   Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");   //创建连接对象   conn = DriverManager.getConnection(&qu

qt 操作excel表格

自己编写的一个Qt C++类,用于操作excel表格,在Qt中操作excel需在.pro中增加CONFIG+=qaxcontainer配置. 1.打开Excel:objExcel = new QAxObject("Excel.Application"): <?xml:namespace prefix = o /> 2.创建工作表:workSheet->dynamicCall("Add"); 3.打开工作表:workExcel->dynamic

Qt之操作Excel

Visual Basic for Applications(VBA)是一种Visual Basic的一种宏语言,主要能用来扩展Windows的应用程式功能,特别是Microsoft Office软件.也可说是一种应用程式视觉化的Basic Script.1994年发行的Excel 5.0版本中,即具备了VBA的宏功能. 在VBA的参考手册中就可以看到具体函数.属性的用法,Qt操作Excel主要通过 QAxObject + Excel VBA来实现! 关于Qt对Excel的操作,网上的资料挺多的,

MFC:使用ODBC操作EXCEL表

方案一:利用现成的第三方库:CSpreadSheet 使用CSpreadSheet操作EXCEL的局限性:你只能够在EXCEL中创建表,然后才能够采用ODBC的方式操作EXCEL表,否则查询语句中FROM后面的表名称无法填写. 限制 该控件需要MFC(微软基础类库)支持.未测试是否支持Unicode编码.控件以ODBC读写 Excel文件,需要ODBC驱动程序.Excel文件必须列标记.且首行列标记唯一(字段).禁止 删除工作簿,仅允许删除工作簿内容.列值类型参照程序数据类型.不采用Excel格

一个操作EXCEL的C#类ExcelUtils

最近在公司里一直从事服务类的工作,涉及到很多excel的处理.部分工作内容是每天重复的,只是每天的数据不同而已.我遇到的一个问题是客户每天发送的几种数据有些excel中的字段顺序是一致的,有些是不一致的,而对数据汇总就要一列一列的去调整,剪切,复制,粘贴,很麻烦.还有类似导入.导出数据.类似的问题.熟悉EXCEL的人肯定知道,其实EXCEL中为我们提供了很多常用的功能,比如筛选.排序.透视表统计等,只是需要手动去操作.实际这些常用操作完全可以用程序去替代,解放我们的双手.需要注意的是,写这种工具

VC操作excel

http://www.cnblogs.com/witxjp/archive/2010/06/05/1752181.html 最近在做个数据库程序,因为有些数据用户要求导出到Excel文件显示(需要报给其他单位).所以查阅了一下相关的VC的Excel编程操作,总结一下吧:(所有资料来源于网络) 利用VC操作Excel的方法至少有两种 1 .利用ODBC把Excel文件当成数据库文件,来进行读.写.修改等操作,网上有人编写了CSpreadSheet类,提供支持. 2. 利用Automation(OL