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

来源:互联网 发布:java的do while 编辑:程序博客网 时间:2024/04/29 03:35

实例说明
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#编程词典》