知识大全 .Net中处理Word 2007文档的一种方法

Posted 文件

篇首语:学而不思则罔,思而不学则殆。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 .Net中处理Word 2007文档的一种方法相关的知识,希望对你有一定的参考价值。

.Net中处理Word 2007文档的一种方法  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

  有的时候我们需要在程序中处理Word文档 比如 删除或替换掉文档中的某些字符串 实现这个功能有很多方法 我这里介绍一种方法 个人认为其效率要优于其它方法 但本方法目前只适用于office 中的Excel Word PowerPoint 下面引用一些msdn上关于office 的介绍 Microsoft Office system为Microsoft Office Excel Microsoft Office Word 和Microsoft Office PowerPoint 采用了基于XML的文件格式 新的格式增强了文件与数据的管理能力 数据恢复能力 以及与业务线系统的互操作能力 它们是对早期版本的二进制文件的扩展 任何支持XML的应用程序都可以访问新文件格式当中的数据 并与之协同工作 这些应用程序并不需要成为Microsoft Office system或Microsoft产品的一部分 用户也可以使用标准的转换来提取或重新组织数据 另外 有关安全性的担忧也大大的降低 因为信息是存储在XML当中的 它从本质上来讲都是纯文本的 因此 数据可以没有任何障碍地通过企业防火墙进行传递

  注意

  不要将Office Open XML格式与Microsoft Windows XML Paper Specification格式相混淆 Office Open XML格式使用Open Packaging Conventions XML Paper Specification (XPS)也使用它 但是 这两种格式在许多重要的方面是不同的 XPS是一个页面内的 固定的文档格式 它是在Microsoft Windows Vista操作系统当中所引入的 而Office Open XML格式是面向Office Word Office Excel 和Office PowerPoint 的完全可编辑的文件格式 虽然它们在XML和ZIP压缩的使用方面有很多相似的地方 但是它们在文件格式的设计和使用目的上还是有着很大的不同

  为了打开一个Word XML文件

   创建一个临时目录来存储文件和它的部件    创建一个Word 文档 包括文本 图片 以及其它元素 保存为一个 docx文件    在文件名的末端添加一个 zip扩展名    双击文件 这时将会在ZIP应用程序当中打开该文件 您可以查看组成文件的每个部件 (可以不用winrar压缩工具打开 以windows默认的zip格式打开)   将这些部件提取到刚才创建的临时目录当中

  这时就可以看到组成docx文件的所有XML格式的文件 这里需要大家详细阅读一下我上面给的链接的内容 现在我主要介绍一下在 net中处理word( )文档的一种方法 需要说明的是在 net frameword 中并没有提供相关的类来处理zip格式的文件 在 net framework 中提供了一个类Package 所属的命名空间为System IO Packaging 因此在本例中要实现对word文档的处理必须安装 net frameword 或者 在引用中要添加对WindowsBase dll的引用 这个DLL文件在windows 系统里位于C:\\Program Files\\Reference Assemblies\\Microsoft\\Framework\\v \\目录下 我做的这个例子是替换Word页脚中的链接 将// google cn/ 替换为// cnblogs / 其它的处理可以用类似的方法来操作 下面是代码:

  using System;  using System Collections Generic;  using System Text;  using System IO;  using System IO Packaging;    namespace WordProcess        class Program             static void Main(string[] args)                     string filePath = test docx ;             string content = null;             string contentType;             CompressionOption option;             PackageRelationshipCollection relations;             try                                             //打开docx文件                 using (Package zip = System IO Packaging Package Open(fileZip FileMode OpenOrCreate FileAccess ReadWrite))                                     foreach (PackagePart part in zip GetParts())                                             //寻找页脚所在的文件                         if (part Uri OriginalString == /word/footer xml )                                                     StreamReader sr = new StreamReader(part GetStream());                             content = sr ReadToEnd();                             //替换内容                             if (content != null)                                 content = content Replace( // google cn // cnblogs );                             sr Close();                             contentType = part ContentType;                             option = part CompressionOption;                             relations = part GetRelationships();                             //删除 footer xml                             zip DeletePart(part Uri);                             //创建一个新的 footer xml                             Uri tempUri = PackUriHelper CreatePartUri(new Uri( /word/footer xml UriKind Relative));                             PackagePart tempPart = zip CreatePart(tempUri contentType option);                             //将修改后的 footer xml                             using (StreamWriter sw = new StreamWriter(tempPart GetStream()))                                                             sw Write(content);                                 sw Flush();                                 sw Close();                                                         //创建tempart与各XML文件之间的关系 非常重要                             foreach (PackageRelationship relation in relations)                                                             tempPart CreateRelationship(relation TargetUri relation TargetMode relation RelationshipType relation Id);                                                         zip Close();                             break;                                                                                     catch (Exception ex)                             throw new Exception(ex Message);                         cha138/Article/program/net/201311/15513

相关参考

知识大全 word2007文本框内文字的垂直对齐无法设置,三种模式的按钮都是灰色的。求高手指点

word2007文本框内文字的垂直对齐无法设置,三种模式的按钮都是灰色的。求高手指点!用word2007修改2003兼容的文档才会出现这个问题,如果另存为2007文档,则没有这个问题。(我试验过了)w

Word文档具有表格处理,绘制图形,自动更正的功能

Word文档具有表格处理,绘制图形,自动更正的功能。_____答案:正确解析:Word文档具有表格处理,绘制图形,自动更正的功能。故本题判断正确。

知识大全 word中图形和表格怎么组合在一起?

word中图形和表格怎么组合在一起?组合不了,除非把表格转成图片:选中表格——剪切——粘贴——选择性粘贴——图片这样就可以组合了。word怎么将多个图形组合在一起在Word2007文档中使用自选图形工

知识大全 126邮箱中,word文档不能在线预览

126邮箱中,word文档不能在线预览你下载下来用word打开就行,应该是网络的问题,不行,过几天就可以打开了。将附件word文档添加到电子邮箱中并保存为草稿,为什么此后却打不开附件很多原因1、上传没

知识大全 把网页生成word文档并提供下载

  在php中如何把中的内容生成到word文档中  php把中的内容生成到word文档中时不居中显示问题即会默认按照web视图进行显示  php把中的内容生成到word文档中时相关样式不兼容问题  正

知识大全 word文档中,表格中的格子长宽怎么设置啊

word文档中,表格中的格子长宽怎么设置啊?右击表格--表格属性跳出对话框点行勾选指定高度设置3厘米,后面选固定值点列勾选指定宽度设置5厘米,后面选固定值确定就好了。word文档中的表格如何设置长宽楼

知识大全 用C#在Word文档中搜索文本

用C#在Word文档中搜索文本  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  在word应用程序

知识大全 用javascript操作word文档

  向word中写入内容  首先在word中设置书签如书签名为bookmarkjavascript中可以这样写  varword;word=newActiveXObject(WordApplicati

Word具有强大的编辑功能,下面对Word功能的描述中不正确的是

Word具有强大的编辑功能,下面对Word功能的描述中不正确的是_____。A、Word文档中可以实现图文混排,并且还可以对插入的图片做简单的编辑处理B、Word文档中不仅可以插入表格,而其可以对表格

知识大全 怎样使word文档中的页有横着的有竖着的

怎样使word文档中的页有横着的有竖着的?同一文档的纸张方向不同的设置方法,假设第5、6页为横向,其余页为纵向页面:1、在第5页的第一个字符前插入分节符下一页:“页面布局”功能区,“页面设置”分组,按