c# 操作Word总结

简介:

 

  在医疗管理系统中为保存患者的体检和治疗记录,方便以后的医生或其他人查看。当把数据保存到数据库中,需要新建很多的字段,而且操作很繁琐,于是想到网页的信息创建到一个word文本中,在显示的时,可以在线打开word,也可以把word转换成html标签显示。 这样使用word代替网页的原因有:
  第一:网页生成数学公式和特殊符号存储和显示比较麻烦(如何操作word生成数学公式,有待测试)
  第二:生成Word版的报告更容易存档和没有环境下的传阅及打印
  第三:客户直接操作Word感觉更亲切,而且非常熟悉 
  Msdn上的word操作api(不过只有英文版,英文差的先闪过) 
  Word2007的API:http://msdn.microsoft.com/en-us/library/bb257531(v=office.12).aspx
  Word2010的API:http://msdn.microsoft.com/en-us/library/microsoft.office.interop.word(v=office.14).aspx

Word对象模型 (.Net Perspective)

五大对象
Application :代表Microsoft Word应用程序本身
是Document和Selection的基类。通过Application的属性和方法,我们可以控制Word的大环境。
Document :代表一个Word文档
当你新建一个Word文档或者打开一个已有的Word文档,你将创建一个Document对象,该对象被加入到Words Documents Collection中。拥有焦点的Document称为ActiveDocument,可以通过Application对象的ActiveDocument属性获得当前文档对象
Selection :代表当前选中的区域(高亮),没有选中区域时代表光标点
它通常是高亮显示的(例如,你要改变一段文字的字体,你首先得选中这段文字,那么选中的这块区域就是当前文档的Selection对象所包含的区域)
Bookmarks :书签
1>书签一般有名字
2>Saved with the document,且文档关闭了之后书签继续存在
3>书签通常是隐藏的,但也可以通过代码设置其为可见

Range :代表一块区域,与Selection类似,不过一般不可见
1>包含一个起始位置和一个结束位置
2>它可以包含光标点,一段文本或者整个文档
3>它包含空格,tab以及paragraph marks
4>它可以是当前选中的区域,当然也可以不是当前选中区域
5>它被动态创建
6>当你在一个Range的末尾插入文本,这将扩展该Range


word文档对象的结构图


关于对象的详细使用,可以参考msdn api

实例使用  

创建Word 文档所使用的主要方法是通过微软公司提供的Microsoft Word X Object Library,
其中X 为版本号。Word2013为15.0 , Word2010对应14.0, Word 2007 对应12.0,Word 2003 对应11.0。
通过在项目中添加该组件,即可使用微软公司提供的方法创建相应版本的Word 文档。
在实例中我将所要生成word的格式设置为2003版本

新建一个winForm项目文件,
Com组件中添加 Microsoft Word 12.0 Object Library,引用面板中多出Microsoft.Office.Core、Microsoft.Office.Interop.Word两个引用。
在类文件中添加应用如下:
using MSWord = Microsoft.Office.Interop.Word;
using System.IO;
using System.Reflection;
using Microsoft.Office.Interop.Word;

  下面从word创建、格式设置、文本添加、图片添加、表格添加展示部分代码:

  创建Word文档

 

  设置Word文档格式

效果图:

 

  添加文本

效果图:

  添加图片

效果图:

  添加表格

附:SetTableBorderStyle函数内容

table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft].Visible = true;             
table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft].Color = 
Word.WdColor.wdColorGreen; 
            
table1.Borders[Microsoft.Office.Interop.Word.WdBorderType.wdBorderLeft].LineWidth = 
Word.WdLineWidth.wdLineWidth050pt

效果图:

书签使用:

使用步骤:1:建立word模板,并且在word中插入要用到的书签

     2:c#方法中新建word操作类,并且打开硬盘中建立好的word模板

     3:找到word模板中的书签,并在书签处写入要插入的数据

  word书签使用

附: c# 将word文档显示在网页上的方式:

  View Code

 

转换思路:

  >取得Word文档的本地路径

  >将Word文档转换为html文件

  >将html保存到项目中

  >在当前项目中打开此html文件

局限:

  目前只在IE10测试中可以很好使用,在firefox和chrome测试用均有中文乱码的问题,有待解决。

 

DEMOS

1. word 操作类库参考类

  View Code

 

 

引用:

c# 操作Word总结

http://blog.csdn.net/ruby97/article/details/7406806

http://wenku.baidu.com/link?url=osPLfzoQc1Tl0mi7MAT5srs7KUmPZ3WLf3Pjs_I9Ahu87UNbJceGsogT5ONBsI87DnndqJX7HI6-mRcWehoGcF2P-gLKkvCtiH5KA3UI13S

C# Word 类库的深入理解 



没有整理与归纳的知识,一文不值!高度概括与梳理的知识,才是自己真正的知识与技能。 永远不要让自己的自由、好奇、充满创造力的想法被现实的框架所束缚,让创造力自由成长吧! 多花时间,关心他(她)人,正如别人所关心你的。理想的腾飞与实现,没有别人的支持与帮助,是万万不能的。






    本文转自wenglabs博客园博客,原文链接:http://www.cnblogs.com/arxive/p/7426588.html ,如需转载请自行联系原作者


相关文章
|
7月前
|
C# 开发工具 数据安全/隐私保护
C# 实现 Word 加盖骑缝章效果
C# 实现 Word 加盖骑缝章效果
|
7月前
|
SQL 安全 API
C# 读取Word表格到DataSet
C# 读取Word表格到DataSet
|
前端开发 C#
C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)
C# 基于NPOI+Office COM组件 实现20行代码在线预览文档(word,excel,pdf,txt,png)
|
1月前
|
XML C# 开发工具
C# 删除Word文档中的段落
【11月更文挑战第3天】本文介绍了两种方法来操作 Word 文档:一是使用 `Microsoft.Office.Interop.Word` 库,适用于 Windows 环境下操作 Word 文档,需引用相应库并在代码中引入命名空间;二是使用 Open XML SDK,适用于处理 .docx 格式的文档,通过引用 `DocumentFormat.OpenXml` 库实现。文中提供了示例代码,展示了如何打开、删除段落并保存文档。
|
4月前
|
数据库
C#Winform使用NPOI获取word中的数据
C#Winform使用NPOI获取word中的数据
195 2
|
7月前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
135 2
|
7月前
|
存储 SQL 数据库
C# 将 Word 转文本存储到数据库并进行管理
C# 将 Word 转文本存储到数据库并进行管理
|
7月前
|
存储 SQL C#
C# 读取二维数组集合输出到Word预设表格
C# 读取二维数组集合输出到Word预设表格
|
7月前
|
SQL C# 数据库
C# 读取多条数据记录导出到 Word 标签模板
C# 读取多条数据记录导出到 Word 标签模板