`
huozheleisi
  • 浏览: 1230464 次
文章分类
社区版块
存档分类
最新评论

使用MFC自动化操作Excel文档

 
阅读更多

使用MFC自动化操作Excel文档

项目中要用到MFC操作Excel文件,在网上搜的结果,有把Excel当数据库处理的,也有直接操作Excel的,最终在MSDN上看到的结果,测试后觉得好用些。

使用基本步骤:

1、创建一个支持MFC的C++项目

2、加入一个从Excel的typelib派生的MFC类,下图为typelib列表:

   应用程序                           类型库
   --------------------------------------------------

Microsoft Access 97                   Msacc8.olb
Microsoft Jet Database 3.5         DAO350.dll
Microsoft Binder 97                   Msbdr8.olb
Microsoft Excel 97                     Excel8.olb
Microsoft Graph 97                    Graph8.olb
Microsoft Office 97                    Mso97.dll
Microsoft Outlook 97                 Msoutl97.olb
Microsoft PowerPoint 97             Msppt8.olb

Microsoft Word 97                     Msword8.olb
Microsoft Access 2000                Msacc9.olb
Microsoft Jet Database 3.51        DAO360.dll
Microsoft Binder 2000                 Msbdr9.olb
Microsoft Excel 2000                  Excel9.olb
Microsoft Graph 2000                 Graph9.olb
Microsoft Office 2000                 Mso9.dll
Microsoft Outlook 2000               Msoutl9.olb
Microsoft PowerPoint 2000          Msppt9.olb
Microsoft Word 2000                   Msword9.olb 

Microsoft Access 2002                Msacc.olb
Microsoft Excel 2002                  Excel.exe
Microsoft Graph 2002                 Graph.exe 
Microsoft Office 2002                 MSO.dll
Microsoft Outlook 2002               MSOutl.olb
Microsoft PowerPoint 2002          MSPpt.olb
Microsoft Word 2002                  MSWord.olb

Microsoft Office Access 2003        Msacc.olb
Microsoft Office Excel 2003          Excel.exe
Microsoft Graph 2003                  Graph.exe 
Microsoft Office 2003                  MSO.dll
Microsoft Office Outlook 2003       MSOutl.olb
Microsoft Office PowerPoint 2003   MSPpt.olb
Microsoft Office Word 2003           MSWord.olb
				

注意:这些类型库的默认位置是 C:/Program Files/Microsoft Office/Office(在 Office 2002 中,相应的路径为 C:/.../Office10;在 Office 2003 中,相应的路径为 C:/.../Office11),Dao350.dll 或 Dao360.dll 以及 Microsoft Office 10 (MSO.dll) 除外。Dao350.dll/Dao360.dll 的默认位置是 C:/Program Files/Common Files/Microsoft Shared/Dao。对于 Office 2002,MSO.dll 的默认位置是 C:/Program Files/Common Files/Microsoft Shared/Office10;对于 Office 2003,其默认位置是 C:/Program Files/Common Files/Microsoft Shared/Office11。

3、选择需要的Excel自动化接口,常用的有_Application/_Workbook/_Worksheet/Workbooks/Worksheet/Range等,接口类为Excel.h,Excel.cpp

(上述三步主要用来生产MFC的Excel接口类,测试结果,VC2005生成的Excel接口不好用,报了一堆的error,重定义什么的。参考网上的意见,用VC6生成了一个Excel接口,然后在VC2005直接使用这个接口了)

4、修改接口类的头文件,定义一个命名空间Excel,将接口类定义及实现包含起来,便以使用

5、在使用Excel接口的地方,引用Excel.h

使用注意事项:

1、在MFC项目中,如果没有启用COM服务库,启用COM服务库,示例如下:

2、加入必要的头文件,如<afxdisp.h>

3、Excel接口中有许多默认的Optional参数,对应MFC中的定义为:COleVariant covOptional((long)DISP_E_PARAMNOTFOUND, VT_ERROR);

4、部分Excel自动化接口用到的枚举常量,在MFC导出类中并没有,需要用的时候,可以查阅Excel VAB Reference,直接使用这些枚举常量的对应值。

Excel使用封装类:

为了便以使用,对Excel导出类做了简单的封装,代码如下:

(代码应用的excel.h为MFC导出类)

更多示例代码,参考:

http://support.microsoft.com/kb/178783/zh-cn

http://support.microsoft.com/default.aspx?scid=KB;EN-US;Q179706&ID=KB;EN-US;Q179706

http://www.usewide.com/forums/topics.aspx?ID=86

内容参考来源于MSDN

分享到:
评论

相关推荐

    在VS2008中用MFC自动化EXCEL2007的实例(运行成功)

    本实例可以打开EXCEL2007,建立EXCEL文件,并用C++在EXCEL中添加,改变数据。保存EXCEL文件。

    Visual C++实践与提高-COM和COM+篇『PDF』

    7.2.1 创建最小的MFC自动化EXE工程 7.2.2 添加COM对象类、接口、属性和方法 7.2.3 在Excel中测试组件 7.3 用ATL开发自动化组件——例程ATLSampleExe 7.3.1 利用ATL COM AppWizard创建进程外组件 7.3.2 分析ATL进程外...

    vc++ 应用源码包_2

    在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC满屏开满玫瑰花 VC然输入框出现气球提示 调用...

    vc++ 应用源码包_1

    在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC满屏开满玫瑰花 VC然输入框出现气球提示 调用...

    vc++ 应用源码包_6

    独立打包,保证可解压,内含大量源码,网上搜集...在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC...

    vc++ 应用源码包_5

    独立打包,保证可解压,内含大量源码,网上搜集...在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC...

    vc++ 应用源码包_3

    在MFC应用程序中浏览PDF、Word文档文件 vcdialog 自绘对话框。 vc编程:自动停靠窗体,吸附窗体 OnMoving事件处理。 vc基于HTTP协议断点续传和多线程下载源代码 VC满屏开满玫瑰花 VC然输入框...

    vc++ 开发实例源码包

    内含各种例子(vc下各种控件的使用方法、标题栏与菜单栏、工具栏与状态栏、图标与光标、程序窗口、程序控制、进程与线程、字符串、文件读写操作、文件与文件夹属性操作、文件与文件夹系统操作、系统控制操作、程序...

    VC与Labview、Matlab编程论文资料[2].rar

    VC_实现Excel操作自动化的方法研究与应用.pdf VC_实现MSC_Patran二次开发的方法研究.pdf VC_平台下的虚拟仪器应用研究.pdf VC_环境下基于MapX控件的GIS应用软件的开发.pdf VC_环境下实现的GPIB通讯设计.pdf VC_直接...

    VC与Labview、Matlab编程论文资料

    VC_实现Excel操作自动化的方法研究与应用.pdf VC_实现MSC_Patran二次开发的方法研究.pdf VC_平台下的虚拟仪器应用研究.pdf VC_环境下基于MapX控件的GIS应用软件的开发.pdf VC_环境下实现的GPIB通讯设计.pdf VC_直接...

    VC与Labview、Matlab编程论文资料[4].rar

    VC_实现Excel操作自动化的方法研究与应用.pdf VC_实现MSC_Patran二次开发的方法研究.pdf VC_平台下的虚拟仪器应用研究.pdf VC_环境下基于MapX控件的GIS应用软件的开发.pdf VC_环境下实现的GPIB通讯设计.pdf VC_直接...

    Visual C++编程技巧精选集 光盘

    18.如何使“文件”对话框自动添加扩展名 19.如何实现“文件”对话框的多重选择功能 20.如何在“文件”对话框中选择多个文件 21.如何从“文件”对话框中获取文件标题名 22.如何从“文件”对话框中获取文件扩展名 23....

    Radmin自动登录器v3.0

    用户选择某种外部语言便可以动态切换到新语言界面,无需重新启动程序,用户的语言选择将自动保存到RadminM.ini文件中,关闭程序后下次启动也会自动使用用户选择的新语言界面。 用户可以参照English.lng语言文件的...

    Visual C++高级界面特效制作百例

    实例1 mfc框架、文档和视 实例2 创建多文档窗口 实例3 创建对话框窗口 实例4 创建启动窗口 第2章 多窗口界面 实例5 多窗口的单文档界面 实例6 通过菜单改变视图 实例7 通过工具栏改变视图 实例8 多视图窗口...

    Radmin自动登录器v3.0-多国语言绿色版-Release1-20150615

    用户选择某种外部语言便可以动态切换到新语言界面,无需重新启动程序,用户的语言选择将自动保存到RadminM.ini文件中,关闭程序后下次启动也会自动使用用户选择的新语言界面。 用户可以参照English.lng语言文件的...

    VC6使用word2003生成报表的示例

    wordDll为库的代码,TestDll为使用示例,宏.txt是格式化段落的宏 &lt;br&gt;附加:如果想知道函数中使用的值应该为多少,可以在Word操作的时候录制宏,然后使用单步调试的方式得到想要的值。 注:本着开源的精神,把...

Global site tag (gtag.js) - Google Analytics