在web环境中,我们经常遇到需要对Office文档进行各种各样的处理,如:格式转化、统计、修改等各种操作,如果使用Office的客户端对象模型直接处理,一般会遇到:效率低;服务器资源负载大等一系列问题,毕竟Office对象实现时主要针对的是客户端的使用而设计的,对于批量和大负载的处理自然效率欠佳。
一些常见的方案如下:
- 基于格式解析的第三方方案,NPOI,POI.net(这个最初是apache的java实现的解析office文档的库),等;不过相对来说有的复杂文档转换时存在一定的问题
- 基于OpenXML格式,使用OpenXML SDK处理:这个是官方的方案,和MS自己的格式当然兼容性很好,最主要的是速度快
- Excel文件也可以基于OleDB使用数据访问的形式访问,这个的使用范围有限
- 不过微软目前新的产品逐步的提供了Server端的解决方案,如Excel Service(Sharepoint 2007引入);Word Automation Service(Sharepoint 2010引入);使用这些方案在服务端处理很有效,不过授权受限,目前独立集成有些问题
office转换,doc批量转换docx
对于以前的office文档,如何转换为openxml格式的文档,MS提供了自己的工具包,可以高效的完成转换,这样在这个基础上我们可以基于OpenXML这个开放标准进行各种应用了
http://blogs.msdn.com/b/ericwhite/archive/2008/09/19/bulk-convert-doc-to-docx.aspx
关于OpenXML的相关资料参考
以下这个资料对于Openxml的规范、例子等各个方面有比较详细的叙述可以参考
OpenXML
http://openxmldeveloper.org/articles/OpenXMLsamples.aspx
Open XML Format SDK 2.0
Mastering Text in Open XML WordprocessingML Documents
http://msdn.microsoft.com/en-us/library/ff686712.aspx
Creating Documents by Using the Open XML Format SDK 2.0
http://msdn.microsoft.com/en-us/library/dd440953.aspx
http://msdn.microsoft.com/en-us/library/dd452407.aspx
http://msdn.microsoft.com/en-us/library/dd469465.aspx
Open XML Translator 格式转换
http://blogs.msdn.com/b/brian_jones/archive/2006/07/05/657510.aspx
http://openxmldeveloper.org/articles/OpenXMLsamples.aspx
http://blogs.msdn.com/b/brian_jones/archive/2010/02/26/open-xml-sdk-office-services-better-together.aspx
http://openxmldeveloper.org/archive/2010/03/16/8296.aspx
http://blogs.msdn.com/b/dmahugh/archive/2007/11/13/open-xml-to-daisy-xml-translator.aspx
http://blogs.msdn.com/b/dmahugh/archive/2008/03/31/open-xml-resources-for-developers.aspx
http://blogs.msdn.com/b/brian_jones/archive/2009/01/28/traversing-in-the-open-xml-dom.aspx
http://blogs.technet.com/b/gray_knowlton/archive/2010/01/11/regarding-custom-xml-patch-distribution-and-availability.aspx
Regarding Custom XML Patch distribution and availability
http://social.msdn.microsoft.com/Forums/en-US/worddev/thread/10fe3eaa-d6c2-4763-aa84-e57164cec96d/