下面是一片文章中的一些介绍,不知道有没有用:
(实例1)
以下的一个例子将详细地说明在C++Builder中如何调用Word并打印出一个字符串来。
步骤1 打开C++Builder开发平台,创建一个新的项目
步骤2 在C++Builder的组件面板中找到Office2K组件页,在这个组件页上我们可以看到如下组件:
在这里我们对这些组件中调用Word部分进行概括的说明:
WordGlobal 组件:对Word的最高级属性和方法进行调用。
WordApplication组件:Word应用程序组件,完成对Word应用程序的调用。是实现Word调用的核心组件。
WordDocument组件:Word文档处理组件,用于处理文档的具体内容。
WordFont组件:用于设置Word中的字体、字号等文字设置信息。
WordParagraphFormat组件:用于对Word中的段落格式进行处理。
WordLetterContent组件:对由信函向导创建的信函的元素进行调用的组件。
步骤3 在新项目的Form表单中添加一个WordApplication组件,将name属性改为: WordApp1。
步骤4 添加一个按钮组件到Form表单上将按钮的Caption属性设置为:“Word调用”
步骤5 双击按钮组件切换到代码编辑窗口,添加如下代码:
--------------------------------------------------------------------------------
try{
WordApp->Connect(); //与Word进行连接
WordApp->Documents->Add(); //建立一个新文档
WordApp->Documents->Item(Variant(1))->Range()->InsertAfter(StringToOleStr("这是一段测试文字"));
//在文档中添加一段新文本
WordApp->Application->Visible=true; //显示Word
}
catch(...)
{
ShowMessage("您可能没有安装Word!");
WordApp->Disconnect();
}
--------------------------------------------------------------------------------
步骤6 编译运行程序。这时,我们单击“Word调用”按钮就可以看到:Word程序自动运行,同时在Word中显示出一串字符串,整个程序的调用就完成了。
分析:
这是最简单的Word调用实例。下面,我们就来分析一下我们所输入的代码:
WordApp->Connect();
这一条语句是将我们的应用程序和Word进行连接,如果连接失败可能是因为没有安装Word或Word发生错误。因此,我们用 try... catch(...)... 语句来对可能产生的错误进行处理。
WordApp->Disconnect();
这条语句与上一条语句是进行相反的操作,如果您已经与Word进行了连接,那么这条语句就是断开与Word的连接。需要注意的是:如果您没有关闭Word程序,在C++Builder中运行该语句,则可能导致产生连接错误。
WordApp->Documents->Add();
这条语句是在Word中建立一个新的文档,由于Word是一个多文档的处理程序,因此我们可以建立多个文档来进行操作。文档间又由Document下的Item函数来区分的。例如在程序中我们使用了:
WordApp->Documents->Item(Variant(1))来返回一个具体文档的指针。
Range()函数是用来设置在文档中所操作文本的范围,如果Range()函数中没有任何参数,则表明在所有的范围内进行操作。我们利用Range返回的指针中Text属性写入一个字符串,在文档中就可以看到这个字符串了。
最后我们所做的工作就是将Word程序运行的结果显示出来。我们运用
WordApp->Application->Visible属性来实现。
接上面:
(实例2)
在这个实例中,我们将更加深入地探讨C++Builder调用Word程序实现报表的方法。其中将包括字体的设置,段落的格式等操作。我们将在Word中输出三段文字其中第一段文字的字体设置为黑体并且居中、字号为二号字,第二段文字将字体设置为宋体五号字,第三段文字将居右并为宋体小五号字。
我们建立两个调用Word的对象,一个为WordApplication对象,另一个为WordDocument对象。对象的名称分别为:WordApp和WordDoc。
下面是整个程序的代码:
--------------------------------------------------------------------------------
try{
WordApp->Connect(); //连接Word
WordApp->Documents->Add(); //建立一个新文档
WordDoc->ConnectTo(WordApp->Documents->Item(Variant(1)));
//将WordDocument对象与WordApplication对象进行连接
WordDoc->Paragraphs->Add(); //添加一个段
WordDoc->Paragraphs->Item(Variant(1))->Range->Font->set_Name(WideString("黑体"));
//设置该段文本字体
WordDoc->Paragraphs->Item(Variant(1))->Range->Font->set_Size(20); //设置字号
WordDoc->Paragraphs->Item(Variant(1))->Range->set_Text(WideString("这是第一段文字!"));
//当前段文字
WordDoc->Paragraphs->Item(Variant(1))->Alignment=wdAlignParagraphCenter;
//设置该段文字居中
WordDoc->Paragraphs->Add(); //添加一个段
WordDoc->Paragraphs->Item(Variant(2))->Range->Font->set_Name(WideString("宋体"));
//设置该段文本字体
WordDoc->Paragraphs->Item(Variant(2))->Range->Font->set_Size(12); //设置字号
WordDoc->Paragraphs->Item(Variant(2))->Range->set_Text(WideString("这是第二段文字!"));
//当前段文字
WordDoc->Paragraphs->Item(Variant(2))->Alignment=wdAlignParagraphLeft;
//设置该段文字居左
WordDoc->Paragraphs->Add(); //添加一个段
WordDoc->Paragraphs->Item(Variant(3))->Range->Font->set_Name(WideString("宋体"));
//设置该段文本字体
WordDoc->Paragraphs->Item(Variant(3))->Range->Font->set_Size(10); //设置字号
WordDoc->Paragraphs->Item(Variant(3))->Range->set_Text(WideString("这是第三段文字!"));
//当前段文字
WordDoc->Paragraphs->Item(Variant(3))->Alignment=wdAlignParagraphRight;
//设置该段文字居右
WordApp->Application->Visible=true;
}
catch(...)
{
ShowMessage("您可能没有安装Word!");
WordApp->Disconnect();
}
分析:
在这段程序中我们使用了两个关于Word调用的组件,在WordDocument组件中我们运用ConnectTo函数与WordApplication相连接,通过这种连接就可以方便地使用WordDocument组件所提供的功能对Word的其中一个文档进行具体地操作。使我们更加方便地控制与修改我们所产生的报表。
在WordDocument组件的使用中,我们运用了Paragraphs来对Word中的段落进行操作,其中包括了段落中字体的设置和段落的排版式样等。由此可见C++Builder为我们提供了一个非常方便的Word调用组件来让我们实现Word的应用。
拓展:
如果我们需要对段落中的其中一部分进行字体的设置那应该怎么办呢?我们在刚才的程序中看到:对段落的字体进行
没有合适的资源?快使用搜索试试~ 我知道了~
操作Word,内容丰富,解析全面!!含源码,直接可用!!c++builder精彩编程!
共38个文件
obj:4个
cpp:4个
h:2个
5星 · 超过95%的资源 需积分: 10 87 下载量 14 浏览量
2010-05-04
16:06:54
上传
评论
收藏 2.08MB RAR 举报
温馨提示
操作Word,内容丰富,解析全面!!含源码,直接可用!!c++builder精彩编程!
资源推荐
资源详情
资源评论
收起资源包目录
操作Word.rar (38个子文件)
WordMoney
Project1.obj 17KB
Unit1.obj 1.75MB
Project1.exe 545KB
Document
encash_week_B001_2004003.doc 42KB
Doctempl
encash_week_B001.dot 28KB
Unit1.dfm 2KB
Unit1.~cpp 8KB
Project1.bpr 9KB
Project1.cesettings 216B
Unit1.~dfm 1KB
Project1.cpp 853B
Project1.res 876B
Project1.~bpr 8KB
Project1.bcc32pch 345B
Unit1.h 1KB
Unit1.ddp 51B
Unit1.~ddp 51B
Project1.tds 6.81MB
Unit1.cpp 8KB
Unit1.~h 1KB
调用Word
SendMain.cpp 3KB
SendTextToWord.bcc32pch 345B
SendMain.~ddp 51B
OLE_的word操作.txt 12KB
SendTextToWord.bpr 5KB
SendTextToWord.exe 705KB
SendMain.obj 58KB
SendMain.dfm 2KB
SendTextToWord.res 876B
SendTextToWord.obj 9KB
SendMain.~cpp 3KB
SendMain.h 1KB
SendMain.ddp 51B
SendTextToWord.tds 3.81MB
SendMain.~h 1KB
SendTextToWord.~bpr 5KB
SendMain.~dfm 2KB
SendTextToWord.cpp 696B
共 38 条
- 1
lghndyz
- 粉丝: 25
- 资源: 88
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功
- 1
- 2
- 3
前往页