博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
C#操作Office.word(一)
阅读量:6511 次
发布时间:2019-06-24

本文共 2701 字,大约阅读时间需要 9 分钟。

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

一.创建工程

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

点击创建按钮,就能生成相应的word文档,文档的内容和格式可以在程序代码中设置。

二.添加引用

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

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

三.源代码

新建winform工程,在Form1的窗体代码中添加下面的代码:

 

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

 

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

 

private void btnCreate_Click(object sender, EventArgs e){	//初始化变量   	object Nothing = Missing.Value;                       //COM调用时用于占位   	object format = MSWord.WdSaveFormat.wdFormatDocument; //Word文档的保存格式   	//wordApp = new MSWord.ApplicationClass();              //声明一个wordAPP对象   	wordApp = new MSWord.ApplicationClass();	worddoc = wordApp.Documents.Add(ref Nothing, ref Nothing,		ref Nothing, ref Nothing);	//向文档中写入内容   	wordstr = "hello,Office word!";	worddoc.Paragraphs.Last.Range.Text = wordstr;	//保存文档   	path = "E:" + "\\" + "test";          //设置文件保存路劲   	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("文档创建成功!");  }//btnCreate_Click

 

四.运行结果

点击运行,会在E:\路径下创建一个test.doc的word 2003的文件,并填写内容。如下图所示:

五.错误与分析

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

(2)同时代码中的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.

(3)如果用到了Excel或者ppt等的控制,要加载相应的COM库文件,Excel的加载如下图所示:

六.总结

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

 

补充:

http://blog.csdn.net/wudi626/article/details/2337857

http://www.cnblogs.com/tanshuicai/archive/2009/06/06/1644629.html

http://blog.sina.com.cn/s/blog_45eaa01a0102vs9j.html

转载于:https://www.cnblogs.com/stemon/p/4596700.html

你可能感兴趣的文章
基于HTML5的电信网管3D机房监控应用
查看>>
堆排序
查看>>
端口被占用
查看>>
CentOS系统初始化
查看>>
Rserve的R语言客户端RSclient
查看>>
Java集合(十五)TreeSet源码分析和使用示例
查看>>
关闭Selenium2中 HtmlUnitDriver 的Warning
查看>>
android内置搜索对话框(浮动搜索)例子
查看>>
PHP微信公众号扫码模拟登录功能
查看>>
面向对象技术之系统分析—状态图
查看>>
IOS使用MessageUI Framework 发送邮件
查看>>
简明 Vim 练级攻略
查看>>
如何备份vsftpd.conf配置文件
查看>>
Linux典藏大系
查看>>
回退流
查看>>
2013年的“中国规模”负载(转)
查看>>
转升级hibernate>4,spring>3.1笔记
查看>>
html5之本地存储
查看>>
关于如何在javascript中实现DI
查看>>
通过HTTP访问接口,工具方法
查看>>