C# VS2012操作word文档 (二).插入表格图片

在上一篇文章"C# VS2012创建word文档.(一)"中我们讲述了如何使用VS2012引用COM中Miscrosoft Word 14.0 Object Library实现创建文档,而这篇文章将讲述如何添加表格和图片,因为我在C#联系数据库做销售系统中需要打印表单,我想以图表形式显示在word中,同时生成相应的饼状图或柱状图,所以才有查阅了相关资料,完成文章,供大家分享.其中使用openFileDialog控件也是希望大家学习了解下.

一. 界面设置

设计界面如下图所示,其中对用的5个textBox和2个button控件在图中标明,同时添加一个openFileDialog控件,在插入图片时点击"选择"按钮实现打开一个选择图片窗体,选择后在textBox5只读中显示相应图片的路径.

二. 源代码

1.引用空间

//引用word对象类库和命名空间
using MSWord = Microsoft.Office.Interop.Word;
using System.IO;
using System.Reflection;

2.添加外部变量

object path;                      //声明文件路径变量
MSWord.Application wordApp;       //声明word应用程序变量
MSWord.Document worddoc;          //声明word文档变量

3.通过openFileDialog实现显示打开图片路径

点击"选择"按钮在生成的button2_Click(object sender, EventArgs e)函数中添加如下代码,其中openFileDialog1.Filter是设置打开文件类型,此处为jpg和bmp型,然后把选择的图片路径赋值给textBox5.代码如下图所示:

//点击"选择"添加图片 textBox5为只读
private void button2_Click(object sender, EventArgs e)
{
    //定义openFileDialog打开图片对话框文件类型
    openFileDialog1.Filter = "BMP格式图片(*.bmp)|*.bmp|JPG格式图片(*.jpg)|*.jpg";
    if (openFileDialog1.ShowDialog() == DialogResult.OK)  //点击"确定"按钮执行
    {
        if (openFileDialog1.FileName != "")               //图片路径赋值给textBox5
        {
            this.textBox5.Text = openFileDialog1.FileName;
        }
    }
}

运行程序后,添加图片时openFileDialog的效果如下图所示,右下角有两种图片选择格式供选择:

4.插入表格和图片

点击"创建"按钮在生成的函数button1_Click(object sender, EventArgs e)中添加实现向word中插入表格和图片的代码,如下:

//点击"创建"按钮实现创建word文件
private void button1_Click(object sender, EventArgs e)
{
    if (textBox1.Text == "" || textBox2.Text == "")
    {
        MessageBox.Show("请输入路径和文档名信息");
    }
    else
    {
        //初始化变量
        object Nothing = Missing.Value;                              //表示缺少的值
        object format = MSWord.WdSaveFormat.wdFormatDocumentDefault; //格式docx
        wordApp = new MSWord.ApplicationClass();                     //声明一个wordAPP对象
        worddoc = wordApp.Documents.Add(ref Nothing, ref Nothing, ref Nothing, ref Nothing);
        //定义word文档中表格
        MSWord.Table table = worddoc.Tables.Add(wordApp.Selection.Range,
            Convert.ToInt32(textBox3.Text),Convert.ToInt32(textBox4.Text),
            ref Nothing,ref Nothing);                                //定义一个表格对象
        table.Borders.Enable = 1;                                    //默认表格没有边框
        //填充表格中内容
        for (int i = 1; i <= Convert.ToInt32(textBox3.Text); i++)    //string转换int型
        {
            for (int j = 1; j <= Convert.ToInt32(textBox4.Text); j++)
            {
                table.Cell(i, j).Range.Text= "(" + i + "行," + j + "列)" ;
            }
        }
        //定义插入图片是否为外部链接
        Object linktofile = false;
        Object savedocument = true;
        Object range = worddoc.Paragraphs.Last.Range;                //定义图片插入word位置
        worddoc.InlineShapes.AddPicture(textBox5.Text,ref linktofile,ref savedocument,ref range);
        //保存文档
        path = textBox2.Text + "\\" + textBox1.Text;             //设置文件保存路劲
        worddoc.SaveAs(ref path, ref format, ref Nothing, ref Nothing,
            ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
            ref Nothing, ref Nothing, ref Nothing, ref Nothing);
        //关闭文档
        worddoc.Close(ref Nothing, ref Nothing, ref Nothing);  //关闭worddoc文档对象
        wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);   //关闭wordApp组对象
        MessageBox.Show("文档创建成功!");
    }
}

三. 运行结果

点击运行,填写如下图所示的内容,其中插入表格函数行数=8,列数=5并插入图片:

点击“创建”后,它会在E盘下创建一个test.docx的word文档,同时填写内容如下图所示:

四. 补充知识

其中在插入图片中我使用了一个InlineShapes.AddPicture函数,它相应的使用方法如下图所示,来自http://technet.microsoft.com/zh-cn/library/ff822636

五. 总结

这篇文章主要是使用C#向创建word文档中添加表格和图片的操作,同时如果怎样使用C#创建word还有不明白的可以参考前一篇文章http://blog.csdn.net/eastmount/article/details/11235577同时该文章有些内容思想来自刘丽霞等编写的《C#范例开发大全》,感谢作者,同时希望大家能看看这本书籍,最后希望文章对大家有帮助,同时有不足或错误的地方,见谅!

(By:Eastmount 2013-9-8 夜1点http://blog.csdn.net/eastmount/)

时间: 2024-09-17 03:31:22

C# VS2012操作word文档 (二).插入表格图片的相关文章

C# VS2012操作word文档 (一).创建文档

该文章主要是讲述如何使用VS2012创建word文档,因为在项目中我们可能需要点击一个按钮把数据库中的项目表单或图片显示到word文档中,因此该文章主要分析如何使用VS2012创建word文档并填写相应的内容.主要通过C#引用Miscrosoft Word 14.0 Object Library实现的. 一.创建工程 首先是使用VS2012创建一个windows窗体程序,并添加如下图所示的界面. 二.添加引用 然后需要引用COM中的Miscrosoft Word 14.0 Object Libr

c++操作word-求一vs2012下C++操作word文档的源码,简单易学就好

问题描述 求一vs2012下C++操作word文档的源码,简单易学就好 我要做的就是用C++操作word生成一文档,文档中可能有表格.(vs2012) 网上的资料我都看过,引入msword库,但是后续操作老是有错误,求大神指教. 解决方案 http://www.newxing.com/Code/VC/wjcz/1573.htmlhttp://blog.csdn.net/wowolook/article/details/8509664

在Word文档中插入当前日期并自动更新的方法

在Word文档中插入当前日期并自动更新的方法   图1 红头文件 解决方案一 利用"日期和时间"功能在文档中插入当前日期. 操作方法 ※利用"日期和时间"功能在文档中插入当前日期※ 步骤1.将光标定位到需要插入当前日期处. 步骤2.如图 2所示,单击"插入"选项卡→"文本"组中的"日期和时间"按钮,打开"日期和时间"对话框. 图2 打开"日期和时间"对话框 步骤3.如

win7系统在word文档中插入图片后显示不全怎么办?

  win7系统在word文档中插入图片后显示不全怎么办? 1.选中图片,右键,改变文字环绕的类型,例如"浮于文字上方"; 2.图片已显示完整,挪动图片至合适的位置即可. 解决方法二: 1.在不能改变文字环绕方式的情况下,方法一就不适用了,此时我们可以采取第二种方法; 2.在开始选项卡中点击"段落"右下的箭头符号; 3.在"缩进和间距"下改变行距为"单倍行距"; 4.点击确定; 5.此时图片就全部显示出来了.

VBA 操作word文档文本框中的表格

问题描述 VBA 操作word文档文本框中的表格 使用VBA 修改word文档,添加文本框并在文本框中加入表格,修改表格中某个单元格的值 解决方案 在thisdocument的vbe里添加这些代码,试试:[code=vb]Sub test() With ThisDocument .Shapes.AddTextbox(msoTextOrientationHorizontal 50 50 200 200).Select .Tables.Add Range:=Selection.Range NumRo

java 操作word 文档现在有没有什么好的方法?

问题描述 急求 java 操作word 文档现在有没有什么好的方法? 解决方案 用jacobhttp://sourceforge.net/projects/jacob-project/解决方案二:你是要操作word里面的数据吗?如果是,你可以使用poi包,这个百度就可以下到的,而且对应的百度教程很多,列子很详细.PS:注意看看是否需要区别03和07版本问题解决方案三:刚刚看了一下,你可以看看这个博客http://rensanning.iteye.com/blog/1538689

为Word文档快速插入页眉和页脚的方法

  为Word文档快速插入页眉和页脚的方法           (1)打开Word 2010文档,在"插入"选项卡的"页眉和页脚"选项组中单击[页眉]按钮可打开"页眉样式库",而单击[页脚]按钮则打开"页脚样式库". (2)若要为文档快速添加页眉或页脚,只需在对应的样式库中选择并单击需要的样式即可. (3)如果样式库中的预定义样式,并不能满足您的实际需求,您可以在文档中双击页眉或页脚区域,快速进入编辑状态,这样就可以自行设计相

Word文档中插入分页符并对分页方式怎么设置

  Word文档中插入分页符并对分页方式怎么设置           1.打开需要处理的文档,将插入点光标放置到需要分页的位置.在功能区的"页面布局"选项卡中单击"页面设置"组中的"插入分页符和分节符"按钮,在打开的下拉列表中选择"分页符"选项,如图1所示.此时,文档将从插入点光标处插入分页符,同时完成分页,如图2所示. 图1 选择"分页符"选项 图2 插入分页符 2.打开"开始"选项卡

win7系统中Word文档如何插入本地视频?

win7系统中Word文档如何插入本地视频? 1.打开Word文档,然后点击"插入"选项卡中的"对象"; 2.打开插入对象窗口后,点击新建选项卡,然后从列表中选择"PowerPoint2007幻灯片",然后点击"确定"; 3.这时Word便捷页面就会出现一个制作演示文稿的矩形框,选中该方框,然后点击"插入"选项卡; 4.进入插入选项卡后,这时插入选项卡中就有视频选项了,依次点击"视频"&