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

该文章主要是讲述如何使用VS2012创建word文档,因为在项目中我们可能需要点击一个按钮把数据库中的项目表单或图片显示到word文档中,因此该文章主要分析如何使用VS2012创建word文档并填写相应的内容.主要通过C#引用Miscrosoft Word 14.0 Object Library实现的.

一.创建工程

首先是使用VS2012创建一个windows窗体程序,并添加如下图所示的界面.

二.添加引用

然后需要引用COM中的Miscrosoft Word 14.0 Object Library到工程中去.在"解决方案资源管理器"窗口中右击"引用"对象,在弹出的快捷菜单中选择"添加引用"命令,弹出"添加引用"对话框中选择COM选项卡,选择"Miscrosoft Word 14.0 Object Library".如下图所示:

添加后,查看工程解决方案中引用,会看到引用到工程中的word对象如下图所示,这里会引用Microsoft.office.Interop.Word对象.

三.源代码

双击Form1界面空白处,进行添加源代码操作,首先添加的下面的引用代码,其中MSWord是引用word对象,System.Reflection命名空间是引用Missing.Value缺省值.

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

添加源程序代码如下所示:

namespace PDFTest
{
    public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();
        }
        object path;                      //声明文件路径变量
        string wordstr;                   //声明word文档内容
        MSWord.Application wordApp;       //声明word应用程序变量
        MSWord.Document worddoc;          //声明word文档变量
        //点击"创建"按钮实现创建word文件
        private void button1_Click(object sender, EventArgs e)
        {
            if (textBox1.Text == "" || textBox2.Text == "")
            {
                MessageBox.Show("请输入路径和文档名信息");
            }
            else
            {
                //初始化变量
                object Nothing = Missing.Value;                       //COM调用时用于占位
                object format = MSWord.WdSaveFormat.wdFormatDocument; //Word文档的保存格式
                wordApp = new MSWord.ApplicationClass();              //声明一个wordAPP对象
                worddoc = wordApp.Documents.Add(ref Nothing, ref Nothing,
                    ref Nothing, ref Nothing);
                //向文档中写入内容
                wordstr = textBox3.Text;
                worddoc.Paragraphs.Last.Range.Text = wordstr;
                //保存文档
                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("文档创建成功!");
            }
        }
    }
}

四.运行结果

点击运行,输入如上图界面中的内容,会在G:\路径下创建一个test.doc的word 2003的文件,并填写内容.如下图所示:

五.错误与分析

在运行前可能会出现错误提示:无法嵌入互操作类型"Microsoft.Office.Interop.Word.ApplicationClass".解决方法是:在Visual Studio 中点击菜单项"视图->解决方案资源管理器"在其中点开"引用"文件夹,在"Microsoft.Office.Interop.Word" 上点击鼠标右键选择"属性".将属性中的"嵌入互操作类型"的值改为"false"即可.如下图所示:

同时代码中的object Nothing = Missing.Value表示缺少的值,在使用C#->COM时某个参数不会被使用时用于占位,类似于C++中NULL,但C#中null与它不同,所以当你调用COM使传空或占位就需要该代码实现相同的功能.注意Missing.Value的命名空间在System.Reflection中.通常Microsoft
Word 11.0 Object Library对应Word 2003,Microsoft Word 12.0 Object Library对应Word 2007,如果想创建docx文档,设置word格式时为object format =MSWord.WdSaveFormat.wdFormatDocumentDefault.

六.总结

最后推荐大家看看这篇博客,它详细介绍了C#操作office文档.http://blog.csdn.net/wudi626/article/details/2337857同时我上面的知识也参看了一些博客,还有刘丽霞等编写的《C#范例开发大全》,在此感谢这些人.这篇文章主要是在做数据库系统中要引用到打印报表,显示为pdf|word格式,所以才写了该文章,后面还想写一篇关于word中插入表格和图片的word操作,至于页面布局等我不想涉及,但思想都是一致的.希望文章对大家有帮助,同时有不足或错误的地方,见谅!

(By:Eastmount 2013-9-6 下午4点http://blog.csdn.net/eastmount/)

 

时间: 2024-11-01 14:59:51

C# VS2012操作word文档 (一).创建文档的相关文章

JBuilder2005创建开发文档之创建文档

虽然在Java文件中编写注释后,马上可以切换到内容窗格的Doc视图页代码中对应的Javadoc文档,但在Doc视图页中生成的文档仅是不完整的"范本".首先,没有导航树,其次没有生成通过@see或@link关联内容的链接.所以你可以把Doc视图页中的Javadoc文档看成是Javadoc最终版本的预览. 要为工程产生完整的Javadoc文档,必须通过Javadoc向导,在这节里,我们用Javadoc向导为javadoc工程创建完整的Javadoc文档. 1.File->New...

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

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

Csharp 简单操作Word模板文件

原文:Csharp 简单操作Word模板文件 1.创建一个模板的Word文档  Doc1.dot 内容为: To: <Name> Sub:<Subject>   Website is ok geovindu 涂聚文好样的 work. CEo                          <Datetime> Thanks.   2.程序操作代码为: /// <summary> /// 簡單操作Word模板文件 /// 塗聚文 2011-11-03 ///

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

使用C#操作word文档

问题描述 如我在添加了引用MicrosoftOffice14.0ObjectLibrary,并进行了word文档的操作,最后生成一个word文档,那么我必须安装哪个版本的office才能支持上面的操作了 解决方案 解决方案二:2010吧.google一下很快就出来了.解决方案三:如果是14的话,需要2010,另外这是向下兼容的,这意味着如果安装了2013也可以,如果需求的功能不多,建议使用npoi,这样就不需要安装office了.解决方案四:MicrosoftOffice14.0ObjectLi

如何在Word 2013中使用模板创建文档

Word2013提供了多种非常实用的Word文档模板,如简历.报表设计.课程提纲.书法字帖等.通过使用这些模板,用户可以很方便地创建比较专业的Word2013文档.在Word2013中使用模板创建Word文档的步骤如下所述: 第1步,打开Word2013文档窗口,依次单击"文件"→"新建"按钮. 第2步,在打开的"新建"面板中,用户可以单击"书法字帖"等Word2013内置的模板创建文档,还可以选择"报表设计&quo

在Word 2010文档中创建电子邮件超链接

Word 2010文档中的超链接除了可以指向网页或其他文件意外,还可以指向电子邮件地址.当用户点击Word 2010文档中的电 子邮件超链接时,将自动打开本机中的电子邮件客户端程序(例如Outlook)编辑邮件,并自动填写收件人的电子邮件地址.在 Word 2010文档中创建电子邮件超链接的步骤如下所述: 第1步,打开Word 2010文档窗口,选中需要创建电子邮件链接的文字.切换到"插入"功能区,在"链接 "分组中单击"超链接"按钮,如图201

在Word 2010文档中创建图片超链接

Word 2010文档中的超链接不仅可以是文字形式(参考教程<在Word 2010文档中创建文本超链接>),还可以是图片超链接 .在Word 2010文档中创建图片超链接的步骤如下所述: 第1步,打开Word 2010文档窗口,单击选中需要创建超链接的图片.切换到"插入"功能区,在"链接 "分组中单击"超链接"按钮,如图2011081101所示. 图2011081101 单 击"超链接"按钮 第2步,打开"

如何在Word 2010中使用模板创建文档

除了通用型的空白文档模板之外,Word 2010中还内置了多种文档模板,如博客文章模板.书法字帖模板等等.另外,Office.com网站还提供了证书.奖状.名片.简历等特定功能模板.借助这些模板,用户可以创建比较专业的Word 2010文档.在Word 2010中使用模板创建文档的步骤如下所述: 第1步,打开Word 2010文档窗口,依次单击"文件"→"新建"按钮. 第2步,在打开的"新建"面板中,用户可以单击"博客文章".