2024年5月6日发(作者:)

实例说明

在Word文档的使用过程中,我们可以轻松的向文档中插入图片信息,那么,怎样使用C#

向Word文档中插入图片呢?本实例将会介绍一种方法,可以方便的实现上述功能。实例运

行效果如图1所示。

图1 在Word文档中插入图片

实例运行中单击“创建Word文档”按钮,会根据用户选择的路径位置创建Word文档并向文

档中添加图片,而文档的名称就是当前系统日期与时间。创建的 Word文档如图2所示。

图2 被插入图片的Word文档

关键技术

本实例重点在于向读者介绍怎样使用InlineShapes集合的AddPicture方法向Word文档中插

入图片,下面对本实例用到的关键技术进行详细讲解。

使用Documents对象的Add方法可以创建Word文档,使用Open方法可以打开Word文档,

当得到文档对象后可以根据 InlineShapes属性得到InlineShape对象的集合,InlineShape对

象包括图片、ActiveX控件等信息。使用 InlineShapes集合的AddPicture方法可以方便的向

文档中插入图片,AddPicture方法的语法格式如下:

InlineShape AddPicture(string FileName, ref object LinkToFile, ref object SaveWithDocument, ref

object Range);

AddPicture方法中的参数说明如表1所示。

表1 AddPicture方法中的参数说明

参数

 FileName

 LinkToFile

SaveWithDocument

 Range

描述

将要插入的图片文件名称及路径

如果为true,则将图片链接到创建该对象的文件;如果为false则将图片作为该

文件的独立副本,默认为false

如果为true,则链接的图片与工作表一起保存,默认为false

插入图片的范围

 设计过程

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

(2)使用C#操作Word文档,需要引用相关的COM组件,引用COM组件的步骤请参照实

例002中的设计过程。

(3)更改默认窗体Form1的Name属性为Frm_Main,更改Text属性为“在Word文档中插

入图片”,并向窗体中添加两个TextBox控件,控件分别用显示图片路径和显示Word文档保

存路径;向窗体中添加4个Button按钮,这4个按钮分别用于选择向Word文档中插入的

图片、选择 Word文档保存路径、创建Word文档和显示Word文档。

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

private void btn_New_Click(object sender, EventArgs e)

{

btn_d = false; //停用新建按钮

serWorkItem( //使用线程池

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

{

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

nt P_wd = G_( //建立新文档

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

P_Range = P_aphs[1].Range; //得到段落范围

object P_Ranges = P_Range; //创建ojbect对象

P_ture( //向文档中插入图片

G_me, ref G_missing, ref G_missing, ref P_Ranges);

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

@"{0}{1}", G_edPath,

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

P_( //保存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_ation).Quit( //退出应用程序

ref G_missing, ref G_missing, ref G_missing);

( //开始执行窗体线程

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

{

btn_d = true; //启用显示按钮

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

}));

});

}