如果你在做一个报表类的程序,可能将内容导出为
Excel
文件是一项必须的功能。之前使用
MFC
的时候我就写过一个类,用于将
grid
中的数据导出为
Excel
文件。在使用了
QtSql
模块后,我很容易的将这个类改写应用在
Qt
程序中。类的名字叫“
ExportExcelObject
”。使用起来很简单:
-
-
-
-
-
-
-
-
-
ExportExcelObjectobj(fileName,sheetName,tableView);
-
-
-
-
-
-
-
-
-
-
-
-
obj.addField(1,tr("name"
),
"char(60)"
);
-
-
obj.addField(2,tr("ID"
),
"int"
);
-
-
obj.addField(3,tr("time"
),
"datetime"
);
-
-
-
-
-
-
connect(&obj,SIGNAL(exportedRowCount(int
)),progressBar,SLOT(setValue(
int
)));
-
-
-
-
-
-
int
retVal=obj.export2Excel();
-
-
if
(retVal>0)
-
-
{
-
-
}
-
-
else
-
-
{
-
-
}
那么这个类是怎样实现的呢?
1.
将
Excel
文件当成是一个数据库
使用
MS
的
ODBC
或
ADO
都可以将
Excel
文件当做一个数据库,那么我们只需要使用下面这个
DSN
连接串去创建并连接至该
Excel
文件:
-
QStringdsn=QString(
"DRIVER={MicrosoftExcelDriver(*.xls)};DSN='';FIRSTROWHASNAMES=1;;CREATE_DB=\"%1\";DBQ=%2"
).
-
-
arg(excelFilePath).arg(excelFilePath);
2.
将
Excel
的工作表(
sheet
)当成是一个数据库表
可以使用
SQL
语句
“CREATE TABLE”
去创建一个工作表。
3.
向表中插入数据
使用
SQL
的“
INSERT
”语句插入数据。
4.
Unicode
支持
是的,列名和数据都支持
Unicode
。
我写了个例子用于演示这个类(下载
)。这个程序在
WinXP/Vista/7
都可正常运行。这个程序并不需要你的电脑上安装了
Excel
,因为
{Microsoft Excel Driver (*.xls)}
从
Windows 2000
开始就是系统自带支持的。
分享到:
相关推荐
原文为《Qt中将QTableView中的数据导出为Excel文件>>,地址http://blog.csdn.net/superjoel/article/details/5321404,资源比较难下载,我下载好帮作者上传下。实例可用,简单易懂,对于QTableView导出为excel...
原文为《Qt中将QTableView中的数据导出为Excel文件>>,地址http://blog.csdn.net/superjoel/article/details/5321404。代码为QT4,QT5有些问题,因为只是参考里面的代码,就不是很在意。
原文为《Qt中将QTableView中的数据导出为Excel文件>>,地址http://blog.csdn.net/superjoel/article/details/5321404。经过修改,支持QT的编译和运行。
数据来源:中国人口与就业统计NJ-2023版
数据来源:中国劳动统计NJ-2023版
基于matlab实现样本熵算法,可用于提取生理信号的特征参数,运算速度较快,m=1或2;r=0.1_std(data)~0.25_std(data)最佳。.rar
蜂网_SCM车销访销业务.pptx
数据来源:中国电力统计NJ-2021版
图书借阅管理系统设计与实现及论大学生写作能力.docx
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
数据来源:中国劳动统计NJ-2023版
数据来源:中国电力统计NJ-2021版
基于数据服务的信息需求管理系统设计与实现.docx
基于matlab实现的多个无人机的群飞行仿真 多个无人机的群飞行仿真.rar
随着物流行业信息化的深入使得物流过程中货物的状态和变化透明化,现代信息化的接入使得物流成本和费用的更容易被掌握,从而增强了信息的准确性。与此同时动态信息能够被及时掌握,根据实际情况做出快速而有效的反应,实现物流运作的动态决策。信息的及时、全面的获取与加工,供需双方可以充分的信息共享与沟通,使得物流服务更准确、从而提高客户的满意度;同时顾客可以有更多自我服务功能,可以随意定义自己的定制的物流服务;另外在提供物流服务的同时,可以为顾客提供信息、资金等双赢的增值服务。 该系统用spring mvc和MySQL实现了快递管理系统。快递管理系统有着很好的应用前景,随着计算机技术和网络技术的发展,它的功能将会得到不断的发展和完善。本系统可以根据实际应用的具体情况,适当加以修改,以便更好应用。本系统操作简单,灵活性好,系统安全性高,运行稳定。本文详细介绍了快递管理系统开发和设计的全过程。
数据来源:中国劳动统计NJ-2023版
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。
【作品名称】:基于VB实现的医疗纠纷检索系统设计(源代码+系统) 【适用人群】:适用于希望学习不同技术领域的小白或进阶学习者。可作为毕设项目、课程设计、大作业、工程实训或初期项目立项。
数据来源:中国电力统计NJ-2021版
Node.js,简称Node,是一个开源且跨平台的JavaScript运行时环境,它允许在浏览器外运行JavaScript代码。Node.js于2009年由Ryan Dahl创立,旨在创建高性能的Web服务器和网络应用程序。它基于Google Chrome的V8 JavaScript引擎,可以在Windows、Linux、Unix、Mac OS X等操作系统上运行。 Node.js的特点之一是事件驱动和非阻塞I/O模型,这使得它非常适合处理大量并发连接,从而在构建实时应用程序如在线游戏、聊天应用以及实时通讯服务时表现卓越。此外,Node.js使用了模块化的架构,通过npm(Node package manager,Node包管理器),社区成员可以共享和复用代码,极大地促进了Node.js生态系统的发展和扩张。 Node.js不仅用于服务器端开发。随着技术的发展,它也被用于构建工具链、开发桌面应用程序、物联网设备等。Node.js能够处理文件系统、操作数据库、处理网络请求等,因此,开发者可以用JavaScript编写全栈应用程序,这一点大大提高了开发效率和便捷性。 在实践中,许多大型企业和组织已经采用Node.js作为其Web应用程序的开发平台,如Netflix、PayPal和Walmart等。它们利用Node.js提高了应用性能,简化了开发流程,并且能更快地响应市场需求。