使用qt调用Excel.pdf

  1. 1、本文档共2页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
使用Qt 调用Excel Eugene Eremin 翻译:tong # 原文Url :http://www.qtlib.ru/index.php?option=com_contenttask=viewid=42Itemid=28 Qt 3.1 及以上版本的一个新特性是为Windows 操作系统提供了ActiveX 支持。开发者如果关 心如何使用Qt 操作COM 组件,比如在Excel 里插入新数据,这个新增功能就很重要了。 然而不幸的是,在Internet 上没有太多这方面的主题可以借鉴。我在这里演示一个例子,可 能会对大家有所帮助。 首先我们来看一下Qt 自带的例子。通常Qt 自带的例子可以告诉大家一些常用的知识点。我 不记得在哪里看过,说一个好的文档应当是用户看过后不再存在不解的地方。但Qt 只提供 了一个与MS Outlook Express 交互的例子。不过这就是我开始Excel 交互研究的起点了。 ActiveX 和COM 的区别不是很大,我不是这方面的专家,但我在这里推荐大家看一本Adam Denninga 的书“ActiveX for professionals ”。这本书会帮助大家很好地理解这些概念。第一步, 我们来引入Excel ,并创建一个对象。 #include qaxobject.h QAxObject* excel = new QAxObject( Excel.Application, this ); //获取一个Excel 对象 excel-dynamicCall( SetVisible(bool), TRUE ); //设置为可见 这里我们通过代码构建了一个对象,并通过对象打开了Excel 。第二步,我们计划插入新数 据。为了做到这一步,必须了解一点 Excel 文档的结构。Excel 应用程序包括一系列的 workbooks ,每个workbook 又由多个sheets 组成。Microsoft 公司并没有给出太多这方面的 结构信息,我在Google 上寻找了不短的时间,也没有太多的结果。 QAxObject *workbooks = excel-querySubObject( Workbooks ); //得到Workbooks 集合的指针 QAxObject *workbook = workbooks-querySubObject( Open(const QString), C:\\data\\A.xls ); //打开硬盘上的一个Excel 文档 QAxObject *sheets = workbook-querySubObject( Sheets ); //得到Sheets 对象的指针 QAxObject *StatSheet = sheets-querySubObject( Item(const QVariant), QVariant(stat) ); //得到名为stat 的一个sheet 的指针 StatSheet-dynamicCall( Select() ); //选择名为stat 的sheet,使之可见 QAxObject *range = StatSheet-querySubObject( Range(const QVariant), QVariant( Qstring(A1:A1))); //选择A1:A1 这个range 对象 range-dynamicCall( Clear() ); // 清除range 对象 range-dynamicCall( SetValue(const QVariant), QVariant(5) ); //将该range 对象的值设为5 接下去用户可以保存和关闭这个Excel 文档了。 最后说一句,这些对象的接口可以通过generateDocumentation () 产生。比如,我们可以这 样做: QFile outfile(excel.html); QTextStream out( outfile ); outfile.open( IO_WriteOnly | IO_Translate ); QString docu = excel-generateDocumentation(); out docu; outfile.close(); 这些信息被保存在名为“excel.html ”的文件里。如果插入的数据很大,会花费很多的

文档评论(0)

湘雅书斋 + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

版权声明书
用户编号:5220142302000001

1亿VIP精品文档

相关文档