使用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

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值