[VC操作Excel.docxVIP

  1. 1、本文档共16页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
[VC操作Excel

VC操作Excel之基本操作 /sp_daiyq/article/detailsExcel的对象模型(有人称其为层次结构)?打开一个Excel工作表,点击“工具”-“宏”-“Visual Basic 编辑器”选项打开VB的编辑器,打开帮助文档,里面“Microsoft Excel Visual Basic 参考”下的“Microsoft Excel 对象模型”展示了完整的Excel的层次结构,是不是有点类似于MFC的继承图表啊?利用帮助文档我们可以找到一些需要的知识,下面介绍一些类: _Application:表示整个的Excel应用程序,包含一个工作簿集合 Workbooks:工作簿集合,包含N个工作簿(Workbook) _Workbook:工作簿,包含一个工作表(sheets)集合 Worksheets:工作表集合,包含N个工作表 _Worksheet:工作表,也就是我们在Excel中看到的Sheet1、Sheet2、Sheet3,它是我们操作Excel的基本单位 Range:这是单元格的集合,我们知道Excel是由一个个的单元格组成的,通过Range来操作单元格 Font:用于设置单元格的字体、颜色、字号、粗体设置 Interior:设置底色 Boards:设置区域内所有单元格的边框,如果要设置一组区域的外边框的话用Rang-BorderAround设置 下面用一个具体的例子来说明怎么通过MFC来操作Excel 2、Excel库的插入 在我们MFC的工程中,按Ctrl+W打开MFC类向导对话框,点击“Add Class...”-“From a type Library...”,找到你所使用的excel类型库,我使用的在目录C:/Program Files/Microsoft Office/OFFICE11下的“EXCEL.EXE”文件,查找时文件类型选“All Files”,然后添加我们所需要的类,通常以上列举的前6类是必须的,其它的需要时再添加。我不认为全部添加是一种好的做法,一个我觉得很乱,另外生成的excel.cpp文件会很大。我建议浏览一遍这些类,这样当你做些操作时可以更清楚的知道需要添加哪些类。添加完需要的类后,我们就可以来做一些基本的操作了。 3、Com支持库的初始化 通常在App的InitInstance()里面加入初始化和关闭COM库的操作,在DoModal()调用之前加入初始化的代码: [cpp] view plaincopyprint?if?(CoInitialize(NULL)?!=?0){?AfxMessageBox(初始化COM支持库失败!);?exit(1);} 在return之前加入CoUninitialize(); 关闭CON库。 4、代码演示一些基本的操作 首先别忘了包含头文件“excel.h”,若用到_variant_t()时,需要包含头文件“comdef.h”和“comutil.h”,否则会出现错误:“error C2065: _variant_t : undeclared identifier”。 下面的代码包括了一些基本的操作:[cpp] view plaincopyprint??//?变量的定义??_Application?app;???Workbooks?books;???_Workbook?book;???Worksheets?sheets;???_Worksheet?sheet;???Range?range;???LPDISPATCH?lpDisp;?COleVariant?vResult;????CString?str?=?;????COleVariant??covTrue((short)TRUE),???covFalse((short)FALSE),???covOptional((long)DISP_E_PARAMNOTFOUND,?VT_ERROR);????//创建Excel?2003服务器(启动Excel)?if?(!app.CreateDispatch(Excel.Application,NULL))?{?AfxMessageBox(Create?Excel?service?failure!);???return;???}????//?设置为FALSE时,后面的app.Quit();注释要打开??//?否则EXCEL.EXE进程会一直存在,并且每操作一次就会多开一个进程??app.SetVisible(TRUE);???books.AttachDispatch(app.GetWorkbooks(),true);????/*??*打开一个工作簿。??*???Excel?2000?只需要13个参数就行,Excel?2003需要15个参数??

文档评论(0)

shit0605 + 关注
实名认证
文档贡献者

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

1亿VIP精品文档

相关文档