当前位置: 首页 > news >正文

Web系统下Office文档的处理 之OpenXML基础

上篇文章 http://www.cnblogs.com/2018/archive/2011/03/21/1989088.html ,看到目前不少人都遇到Web系统上office文档的处理,因此本文继续把这方面以前遇到的一些内容整理一下以飨读者。

首先Office文档的处理格式选择是选择openxml格式,这应该不是个问题,因为及时有的项目使用的是office 2003等这么老的软件通过安装MS官方的兼容包也可以打开和浏览openxml文档。而openxml是个开放的标准,因此基于这个处理有很多的候选方案和资源【相比以前的二进制私有格式是好了很多很多】。

【文档如果是以前的老格式,可以参考上篇文章的MS官方批量转换工具快速的转换为Openxml格式】

本文简要的介绍如何快速的入门和使用openxml格式

基础和参考资料

规范

Open+XML+Explained.pdf清楚的介绍了openxml的规范,有例子,而且内容不长,适合了解(129页)

例子文档

Open+XML+Explained.pdf 附书的文档

http://openxmldeveloper.org/articles/1970.aspx

Workshop: 各种例子文档

http://openxmldeveloper.org/articles/DeveloperWorkshopContent.aspx

http://openxmldeveloper.org/articles/OpenXMLsamples.aspx提供了符合openxml格式的系列文档,对于实现基于openxml的方案的测试非常有用

OpenXML/ODF Translator (sf.net) 这个项目中有测试文档,涉及了规范的几乎各个方面

其他的参考资料

关于Openxml涉及的很多的方面的知识,非常值得推荐

http://blogs.msdn.com/b/ericwhite/archive/2008/10/20/eric-white-s-blog-s-table-of-contents.aspx

Microsoft Word 2010 Developer Building Blocks WORD 2010的版本各种开发目录导引

http://blogs.msdn.com/b/ericwhite/archive/2010/12/15/microsoft-word-2010-developer-building-blocks.aspx

http://social.msdn.microsoft.com/forums/en-US/oxmlsdk/社区,可以看到问题的讨论和解决方案,并能提交问题由社区支持

http://www.openxml.biz/

www.codeplex.com MS的官方开源站点,各种类型的代码

Open XML SDK

架构Open XML SDK 2_0 Architecture

http://blogs.msdn.com/b/brian_jones/archive/2008/10/14/open-xml-sdk-2-0-architecture.aspx

http://openxmldeveloper.org/articles/8264.aspx

SDK和工具包

OpenXMLSDKTool.msi

OpenXMLSDKv2.msi

http://www.microsoft.com/downloads/en/details.aspx?FamilyId=C6E744E5-36E9-45F5-8D8C-331DF206E0D0&displaylang=en 

http://www.microsoft.com/downloads/en/details.aspx?FamilyID=78bea298-a3f9-44cf-bde0-b4f30dc986df

工具Open XML SDK\V2.0\tool\OpenXmlSdkTool.exe,如下图:

可以查看文档的结构和API参考,最酷的是能够看到代码如何实现,这样编写程序时可以参考

clip_image002

通过这个工具可以分析openxml文档的结构,同时还可以看到代码生成文档的方法

参考如上的资料和工具,读取和生成openxml文档应该没有太大的问题了。

相关文章:

  • C# 事件与委托
  • 细说Linux系统优化-实践篇
  • C# Timer用法
  • 2011年3月四级网络工程师试卷、答案及考点解析
  • ubuntu 9.04下安装NS2
  • SQL Server代理服务无法启动的处理方法(转载)
  • PXE脚本
  • 系统指令
  • 隆文互动营销研究院服务的企业微博再创新高
  • JAVA闭包
  • Dell PowerEdge 服务器操作系统部署速度比同类产品快我们是怎样利用生命周期控制器做到这点的呢?...
  • Reactive Extensions学习
  • 别把自己太当回事 -- 职场须知
  • Linux-HA开源软件Heartbeat(测试篇)
  • 我的微博 @爱开源未来
  • [nginx文档翻译系列] 控制nginx
  • 【干货分享】SpringCloud微服务架构分布式组件如何共享session对象
  • Apache Spark Streaming 使用实例
  • CoolViewPager:即刻刷新,自定义边缘效果颜色,双向自动循环,内置垂直切换效果,想要的都在这里...
  • CSS居中完全指南——构建CSS居中决策树
  • git 常用命令
  • Javascript 原型链
  • JS进阶 - JS 、JS-Web-API与DOM、BOM
  • Js实现点击查看全文(类似今日头条、知乎日报效果)
  • ReactNative开发常用的三方模块
  • 闭包,sync使用细节
  • 从零搭建Koa2 Server
  • 模仿 Go Sort 排序接口实现的自定义排序
  • 前端js -- this指向总结。
  • 使用 QuickBI 搭建酷炫可视化分析
  • 用Canvas画一棵二叉树
  • 用mpvue开发微信小程序
  • - 转 Ext2.0 form使用实例
  • python最赚钱的4个方向,你最心动的是哪个?
  • #我与Java虚拟机的故事#连载16:打开Java世界大门的钥匙
  • (2)STL算法之元素计数
  • (八)Docker网络跨主机通讯vxlan和vlan
  • (第27天)Oracle 数据泵转换分区表
  • (二)windows配置JDK环境
  • (附源码)springboot青少年公共卫生教育平台 毕业设计 643214
  • (附源码)计算机毕业设计SSM基于健身房管理系统
  • (六)库存超卖案例实战——使用mysql分布式锁解决“超卖”问题
  • (删)Java线程同步实现一:synchronzied和wait()/notify()
  • (转载)Linux网络编程入门
  • .vimrc php,修改home目录下的.vimrc文件,vim配置php高亮显示
  • @取消转义
  • [100天算法】-x 的平方根(day 61)
  • [AAuto]给百宝箱增加娱乐功能
  • [C++ 从入门到精通] 12.重载运算符、赋值运算符重载、析构函数
  • [CISCN2019 华东北赛区]Web2
  • [CSS]文字旁边的竖线以及布局知识
  • [datastore@cyberfear.com].Elbie、[thekeyishere@cock.li].Elbie勒索病毒数据怎么处理|数据解密恢复
  • [LeetCode]—Anagrams 回文构词法
  • [LeetCode]Spiral Matrix
  • [POI2007] ZAP-Queries (莫比乌斯反演)