该文章主要是讲述如何使用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/)

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

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

    在上一篇文章"C# VS2012创建word文档.(一)"中我们讲述了如何使用VS2012引用COM中Miscrosoft Word 14.0 Object Library实现创建 ...

  2. MongoDB创建集合及创建文档(非常详细哦~)

    创建集合类似于设置数据的类型,创建文档(有2种方式)即向创建的集合中插入数据 下面是对创建集合和创建文档的详细介绍,希望可以帮助到有需要的小伙伴 文章目录 创建集合 创建文档1 创建文档2 创建集合 ...

  3. 报表技术2(百万数据导入导出,POI操作word)

    POI模板导出,操作word 导出用户详情数据(图片,公式处理) 使用模板导出用户详细信息 使用模板引擎 1.编写模板引擎 2.使用模板引擎 百万数据导出 代码实现: 百万数据导入 步骤分析: 1.自 ...

  4. itext操作word,设置页眉页脚,html转word

    这两天学习了itext操作word生成可用的docx文档,以下是我翻阅网上资料最后的结果及相关记录,如下: 我的maven项目导入必要的itext依赖 <dependency><gr ...

  5. Csharp 简单操作Word模板文件

    1.创建一个模板的Word文档  Doc1.dot 内容为: To: <Name> Sub:<Subject> Website is ok geovindu 涂聚文好样的 wo ...

  6. 【转载】C#操作Word的超详细总结

    C#操作Word的超详细总结 本文中用C#来操作Word,包括: 创建Word: 插入文字,选择文字,编辑文字的字号.粗细.颜色.下划线等: 设置段落的首行缩进.行距: 设置页面页边距和纸张大小: 设 ...

  7. C#操作Word的方法总结

    本文中用C#来操作Word,包括: 创建Word: 插入文字,选择文字,编辑文字的字号.粗细.颜色.下划线等: 设置段落的首行缩进.行距: 设置页面页边距和纸张大小: 设置页眉.页码: 插入图片,设置 ...

  8. es内嵌文档查询_ElasticSearch 文档的增删改查都不会?

    本文主要是介绍 ElasticSearch 的文档增删改查和批量操作,同时会介绍一些 REST API 返回状态码的具体含义. 我们先来看下这个表: 这个表包含了 Index.Create.Read. ...

  9. 运用c# 对Word进行操作总结(一)创建Word文档

    在医疗管理系统中为保存患者的体检和治疗记录,方便以后的医生或其他人查看.当把数据保存到数据库中,需要新建很多的字段,而且操作很繁琐,于是想到网页的信息创建到一个word文本中,在显示的时,可以在线打开 ...

最新文章

  1. 倒计时 3 天!「2019 嵌入式智能国际大会」全日程大公开!
  2. CentOS下MySQL的彻底卸载
  3. python基础之---03基本语法
  4. NULL 值处理遇到的错误问题.
  5. 编写可靠 bash 脚本的一些技巧
  6. MAC 安装 pygraphviz 找不到头文件
  7. SAP web 开发 (第二篇 bsp 开发 mvc模式 Part2 )
  8. oracle闪回某个时间点的数据库,oracle11g 使用闪回查询恢复表到过去某一个时间点...
  9. mysql删除新添加数据,MySQL添加、更新与删除数据
  10. 矩池云上加速下载GitHub文件办法
  11. ElasticSearch学习(三):配置与集群
  12. java游戏开发总结_java--游戏后端--项目开发总结6--资源下载
  13. 2022G2电站锅炉司炉考试试题及答案
  14. 我的前端故事----欢乐大富翁( ̄︶ ̄)↗ (摇骰子+棋盘)
  15. 菜鸟Axios学习=官网
  16. omap_i2c omap_i2c.2: controller timed out
  17. 搭建SecureCRT
  18. 视频监控RTSP 客户端
  19. 基于socket的FreeD数据收发
  20. 阿里云总裁王文彬谈阿里云未来三个定位

热门文章

  1. Oracle中的Raw类型解释
  2. python——函数 10、函数的嵌套
  3. django(7)modelform操作及验证、ajax操作普通表单数据提交、文件上传、富文本框基本使用...
  4. UE4笔记-进程/线程/网络/IO模块的相关问题记录
  5. hdu_1358Period(kmp找循环前缀)
  6. Debian 升级到 PHP 7,并支持并行安装
  7. C/C++变量命名规则,个人习惯总结
  8. wpf中把按钮变成圆角
  9. Unity3D 自定义数据格式
  10. 谈搜索架构师的不同阶段