【当前博文转自http://blog.csdn.net/sgdgoodboy/article/details/2102628】
【本文不只有Word相关内容,还涉及了Excel,由于字数限制,Excel部分放在 C++操作Excel学习笔记(四)
去年底老板临时交给一个任务,为一个试验数据管理系统编写一个电子报告生成程序。因为老板也不怎么重视这个项目(钱少啊,呵呵),所以这个任务只好落在我这种小硕身上了。我也是两眼瞎,万事从头干。三个月的苦斗,还算圆满交差。用VC进行office自动化开发,网上有很多文章,我本不想在此画蛇添足。只是感于自己查资料时的苦痛,所以就厚着脸皮把一些心得拿出来见见阳光,有一些技术还是自己摸索出来的。最后,office自动化开发与我专业无丁点关系,希望此文不至于太班门弄斧让你看得难堪,如果尚有所帮助,那真是不胜荣幸(本文只涉及如何解决问题,没有原理,所以,Don’t ask me why)
1 前话
本文中,只讲述如何使用VC++(就是MFC)进行WORD、EXCEL自动化开发。有几个问题先交待于此。
(1) office开发之VC与VB实现之比较。事实上,MFC实在不适合进行office自动化开发。相对VB而言,C++是一种强调类型的语言,这使得在实际编程时通常搞得你非常烦躁,不停地返回一些毫无意义的对象或指针(鸡肋啊!),而且整个程序会显得非常冗长。VB这种属性化的编程语言则非常适于自动化开发。
(2)office版本。在你提交帮助文档的时候,一定要说明你是针对哪个office版本开发的,否则不同的office版本可能会导致程序无法正常运行,因为不同版本的office提供的接口函数可能是不同的(特别是使用VC开发这个问题就比较明显,不知VB是否有同样的问题)。本文中所述的是office20003版本。
(3)两个重要的学习来源。初学office开发,两个不可忽视的学习来源是:word本身的VBA宏代码和微软官方网站。录制的VBA宏代码可以给我们提供非常有用的思路,而且通过调试可以获得很多所需的参数值(因为MFC通常并不支持很多VBA宏)。微软官方网提供了许多非常实用的技术文献(本文涉及的一些技术就来自于MSDN),如果英文基础还可以的话,建议到英文MSDN上去看看,那里的资料要比中国MSDN多。
(4)由于所有权的一些问题,所以不能提供源代码,也许会给阅读带来一些不便,这点希望谅解(而且那代码确实太臭,被我们的大师兄客气地批评得体无完肤,也就不敢拿出来献丑了)
2 自动化技术简述
自动化(以前称为 OLE 自动化)是一种允许您利用现有程序的功能并将其合并到您自己的应用程序中的技