C++操作Word学习笔记(五)

由于学习C++操作word文档是临时需要,所以有些东西也只是知其然不知其所以然,有些代码也是抄了人家的,拿来应需。

C++操作word听说有两种方法,一种是COM、一种是ATL,这里用的是COM。有些函数不知道参数是什么意思时,可以找到函数原型帮助理解。Word的预定义枚举类型都是Wd开头,如WdSeekView::wdSeekMainDocument表示文字视图,WdSeekView::wdSeekCurrentPageHeader表示页眉视图,使用这些枚举类型,可以帮助参数的设置。

这里给出了两个昨天写的例子,能运行的。环境是VS2008和Office2003。第一个例子介绍了创建新文档、插入表格、输入文字、字体设置、设置表格边框、合并单元格、设置页眉页脚、插入图片、保存文件等功能的方法。第二个例子生成了一个完整的报告,包括页边距、段落对齐等。

具体步骤:

1.新建MFC工程,project - add class,选择file。找到Office安装目录下的MSWORD.OLB文件,如C:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB

2.加入需要的接口,下面例子中,C开头的类都是此处加入的接口

3.VS2008会为工程添加相应头文件,此时需要把头文件里的

#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB" no_namespace

改成

#import "C:\\Program Files\\Microsoft Office\\OFFICE11\\MSWORD.OLB" no_namespace raw_interfaces_only \
 rename("FindText","_FindText") \
 rename("Rectangle","_Rectangle") \
 rename("ExitWindows","_ExitWindows")

注意,“\”字符后面不能加空格

3.#include // 为了方便操作 VARIANT 类型变量,使用 CComVariant 模板类

4.好了,可以编程了

//例子1

void CMyWordDlg::OnBnClickedButton1()
{
 CoInitialize(NULL);//初始化COM,与最后一行CoUninitialize对应
//CPageSetup pagesetup=doc.get_PageSetup();//页面设置相关,没用到
 CApplication app;
 if(!app.CreateDispatch(_T("word.application"))) //启动WORD
 {
  AfxMessageBox(_T("居然你连OFFICE都没有安装吗?"));
  return;
 }

 AfxMessageBox(_T("WORD 已经运行启动啦,你可以用Ctrl+Alt+Del查看"));
 app.put_Visible(TRUE); //设置WORD可见。
 
 CDocuments docs = app.get_Documents();
 docs.Add(new CComVariant(_T("")),new CComVariant(FALSE),new CComVariant(0),new CComVariant());//创建新文档
 
 AfxMessageBox(_T("下面,程序要向WORD发送字符啦"));
 CSelection sel=app.get_Selection();/

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值