写在前面:
10.1长假前,导师给安排了任务,做一些用VC++操作WORD进行自动化文档生成的工作。于是乎我百度了许多代码,又看了许多帖子。以前很少接触COM/OLE编程,奈何网上一些基础的东西都是只言片语东鳞西爪,于是乎决定把自己最近所得写成博文来供后人使用。文本一家之言,如有错误欢迎指出。
在学习过程中,我使用的是VS2005+OFFICE2003,在其他环境下是否会产生错误暂不知晓。
1.用VC++操作WORD的基本思路
由于以前做过一些图像方面的东西,而且又没接触过COM编程(在百度之前对怎么操作WORD很迷茫,纯粹闭门造车)。于是产生了我的第一个思路,就像生成BMP文件那样,查找文件头格式,和内容格式,以及一些相关的加密/压缩方法,用二进制的方式,调用CreateFile之类的API来进行操作。
但是,没过多久,我就发现这个思路不成立,这玩意真心找不到相关资料。所以就采用了现在网上一些已经成熟的技术:导入TypeLib类,利用MS提供的COM接口来进行操作。而且再后面的实践中,我发现这样做其实还是很简单的。而且兼容性还算不错。我尝试使用基于OFFICE2000下面编写的代码在安装03或07的机器上运行,简单代码依然可以正确执行,并无什么BUG出现。
2.在自己的工程中引入COM接口
这是使用VC++进行WORD编程的第一步,例如VS05:项目——添加类——MFC——TypeLib中的类。然后再来源中选择文件,选择相应的exe或olb文件即可。例如ÿ