VC操作Word系列

2020-02-21 02:16

VC操作Word系列

近日作一个小东西涉及到对汇总结果的打印,由于打印只在一台特定的机器进行所以考虑使用Word来实现,这样比较简单而且很专业。开始的时候这个东西没有这项功能后来我闲的无聊看看是否可以实现(以前从来没有做过这方面的东西),于是乎搞了一下也不是很难,一点心得大家给指点一二,使用的是Office2000,工程类型是MFC的对话框。先看看需要使用到的东东: 1.View->ClassWizard->Automation->Add Class From Library:定位到你安装Office的目录找到MSWord9.Olb 2.打开后把所有的类都选中倒入到你的工程(反正也是搞一回彻底一点:P) 3.在你的对话框头文件中加上#include\了准备工作搞定之后就可以玩儿转Word了,先来一个简单的

void TestWord1() {

_Application app;

COleVariant vTrue((short)TRUE), vFalse((short)FALSE); app.CreateDispatch(_T(\app.SetVisible(FALSE); //Create New Doc

Documents docs=app.GetDocuments();

CComVariant tpl(_T(\docs.Add(&tpl,&NewTemplate,&DocType,&Visble); //Add Content:Text

Selection sel=app.GetSelection();

sel.TypeText(_T(\第一次玩儿Word\\r\\n\

sel.TypeText(_T(\先来一个简单的\\r\\n\sel.ReleaseDispatch(); docs.ReleaseDispatch(); app.SetVisible(TRUE); app.ReleaseDispatch(); }

大家都应该使用过Word提供的表格功能很是专业,如果在作一些数据库开发之类的软件对汇总的数据进行打印是常见的功能,这个如果用Word来实现个人感觉不错,废话少说说练咱就练。

void CWordTestDlg::TestWord2() {

_Application app;

COleVariant vTrue((short)TRUE), vFalse((short)FALSE); app.CreateDispatch(_T(\app.SetVisible(FALSE); //Create New Doc

Documents docs=app.GetDocuments();

CComVariant tpl(_T(\

docs.Add(&tpl,&NewTemplate,&DocType,&Visble); //Add Content:Text

Selection sel=app.GetSelection();

sel.TypeText(_T(\情况汇总\\r\\n\

sel.TypeText(_T(\跨国公司\\r\\n\COleDateTime dt=COleDateTime::GetCurrentTime(); CString strDT=dt.Format(\

CString str(\str+=strDT; str+=\

sel.TypeText(str); //Add Table

_Document saveDoc=app.GetActiveDocument(); Tables tables=saveDoc.GetTables();

CComVariant defaultBehavior(1),AutoFitBehavior(1);

tables.Add(sel.GetRange(),6,11,&defaultBehavior,&AutoFitBehavior); Table table=tables.Item(1); sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short

(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short<(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\app.SetVisible(TRUE); table.ReleaseDispatch(); tables.ReleaseDispatch(); sel.ReleaseDispatch(); docs.ReleaseDispatch(); saveDoc.ReleaseDispatch(); app.ReleaseDispatch(); }

上一篇说了如何制作一个简单的表格,在实际应用中会发现表格的种类很多其中对于单元格要求合并的情形很多,这样出来的表格比较专业让客户看起来也很是舒服,不喔喔了看看下面的代码就全明白了。

void CWordTestDlg::TestWord3() {

_Application app;

COleVariant vTrue((short)TRUE), vFalse((short)FALSE); app.CreateDispatch(_T(\app.SetVisible(FALSE); //Create New Doc

Documents docs=app.GetDocuments();

CComVariant tpl(_T(\docs.Add(&tpl,&NewTemplate,&DocType,&Visble); //Add Content:Text

Selection sel=app.GetSelection();

sel.TypeText(_T(\情况汇总\\r\\n\

sel.TypeText(_T(\跨国公司\\r\\n\COleDateTime dt=COleDateTime::GetCurrentTime(); CString strDT=dt.Format(\

CString str(\str+=strDT; str+=\

sel.TypeText(str); //Add Table

_Document saveDoc=app.GetActiveDocument(); Tables tables=saveDoc.GetTables();

CComVariant defaultBehavior(1),AutoFitBehavior(1);

tables.Add(sel.GetRange(),7,11,&defaultBehavior,&AutoFitBehavior); Table table=tables.Item(1); sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));

sel.TypeText(_T(\for(int i=2;i<7;i+=2) {

Cell c1=table.Cell(i,1); Cell c2=table.Cell(i+1,1); c1.Merge(c2); c1.ReleaseDispatch(); c2.ReleaseDispatch(); }

app.SetVisible(TRUE); table.ReleaseDispatch(); tables.ReleaseDispatch();

sel.ReleaseDispatch(); docs.ReleaseDispatch(); saveDoc.ReleaseDispatch(); app.ReleaseDispatch(); app.SetVisible(TRUE); }

运行一下看看合并的效果如何:)

上一回讲了如何合并单元格,这次来说说如何填充单元格以及如何对合并后的单元格的内容让他居中显示这样能够看得舒服一点:)。代码如下所示:

void CWordTestDlg::TestWord4() {

_Application app;

COleVariant vTrue((short)TRUE), vFalse((short)FALSE); app.CreateDispatch(_T(\app.SetVisible(FALSE); //Create New Doc

Documents docs=app.GetDocuments();

CComVariant tpl(_T(\docs.Add(&tpl,&NewTemplate,&DocType,&Visble); //Add Content:Text

Selection sel=app.GetSelection();

sel.TypeText(_T(\情况汇总\\r\\n\

sel.TypeText(_T(\跨国公司\\r\\n\COleDateTime dt=COleDateTime::GetCurrentTime(); CString strDT=dt.Format(\COleDateTimeSpan span(1,0,0,0);

CString strDT1=(dt-span).Format(\CString strDate[]={strDT1,strDT};

CString str(\str+=strDT; str+=\

sel.TypeText(str); //Add Table

_Document saveDoc=app.GetActiveDocument(); Tables tables=saveDoc.GetTables();

CComVariant defaultBehavior(1),AutoFitBehavior(1);

tables.Add(sel.GetRange(),7,11,&defaultBehavior,&AutoFitBehavior); Table table=tables.Item(1); sel.TypeText(_T(\

sel.MoveRight(COleVariant((short)1),COleVariant(short(1)),COleVariant(short(0)));


VC操作Word系列.doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:传染病学课程讲义目录

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: