您的位置:首页 > 编程语言 > C#

C#操作Word(三)——C#向Word文档中写入文字

2010-07-29 18:09 211 查看
实例说明

Word有着强大的文本编辑功能,我们可以轻松的在Word中输入文本内容,更改文字字体,设置文字大小、颜色,方便的对文本内容排版。在前面的实例中已经详细介绍了怎样使用C#创建Word文档,本实例将会使用C#方便的向指定的Word文档中输入文本内容。实例运行效果如图1所示。




图1 向Word文档中写入文字

实例运行中单击“创建Word文档”按钮,会根据用户选择的路径位置创建Word文档并向文档中添加文字,而文档的名称就是当前系统日期与时间。创建的Word文档如图2所示。




图2 被写入文字的Word文档

? 关键技术

本实例重点在于向读者介绍怎样使用Word文档中Range属性向Word中添加文本信息,下面对本实例用到的关键技术进行详细讲解。

读取或设置Word文档中的文本内容的方式基本相同,首先是得到文本内容的范围,然后通过范围对象读取或设置文本信息。实例中首先使用了Paragraphs集合中的索引获取Word文档中的段落对象,然后通过Paragraph段落对象的Range属性得到文档中段落的范围,最后通过范围对象的Text属性获取或设置段落内的文本信息。

说明:在Word文档的操作中也可以使用Range对象的Collapse方法折叠Range对象。折叠后的Range对象将不包含文本或其它信息,只是标注文档中的一个位置。

? 设计过程

(1)打开Visual Studio 2008开发环境,新建一个Windows窗体应用程序,命名为AddLetter。

(2)使用C#操作Word文档,需要引用相关的COM组件,引用COM组件的步骤请参照实例002中的设计过程。

(3)更改默认窗体Form1的Name属性为Frm_Main,更改Text属性为“向Word文档中写入文字”,并向窗体中添加两个TextBox控件,控件分别用输入字符串和显示Word文档保存路径;向窗体中添加3个Button按钮,这3个按钮分别用于选择文档保存路径、创建Word文档和显示Word文档。

(4)程序主要代码如下:

private void btn_New_Click(object sender, EventArgs e)

{

btn_New.Enabled = false; //停用新建按钮

ThreadPool.QueueUserWorkItem( //使用线程池

(P_temp) => //使用lambda表达式

{

G_wa = new Word.Application(); //创建Word应用程序对象

Word.Document P_wd = G_wa.Documents.Add( //建立新文档

ref G_missing, ref G_missing, ref G_missing, ref G_missing);

Word.Range P_Range = P_wd.Paragraphs[1].Range; //得到文档的范围对象

P_Range.Text = txt_add.Text; //向文档中添加字符串

G_str_path = string.Format( //计算文件保存路径

@"{0}{1}", G_FolderBrowserDialog.SelectedPath,

DateTime.Now.ToString("yyyy年M月d日h时s分m秒fff毫秒") + ".doc");

P_wd.SaveAs( //保存Word文件

ref G_str_path,

ref G_missing, ref G_missing, ref G_missing, ref G_missing,

ref G_missing, ref G_missing, ref G_missing, ref G_missing,

ref G_missing, ref G_missing, ref G_missing, ref G_missing,

ref G_missing, ref G_missing, ref G_missing);

((Word._Application)G_wa.Application).Quit( //退出应用程序

ref G_missing, ref G_missing, ref G_missing);

this.Invoke( //开始执行窗体线程

(MethodInvoker)(() => //使用lambda表达式

{

btn_Display.Enabled = true; //启用显示按钮

MessageBox.Show("成功创建Word文档!", "提示!"); //弹出消息对话框

}));

});

}

——摘自《C#编程词典》
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: