在网上看了不少,都是调用COM接口,需要Office环境支持,自己动手写了一个。
随便使用,随便修改。

脱离office环境提取word中数据

前言:
由于项目需要,对word2003和word2007的文件结构进行了分析,并自己写了个小工具用于提取word中的文本信息。
当然,如果要提取其他信息(图片等),根据结构进行分析也用不了太长时间。

Word2007结构比较简单一点:
它其实是一个压缩包,具体分析网上很多,不多说。参照源码也很容易理解。
具体过程就是:
(1)  解压缩;
(2)  解析XML文件,(对于文本信息,解析word目录下的document.xml文件即可;
(3)  提取文本,(document.xml中的文字信息是以UTF-8格式存储的,提取出来转化为GBK码)转换过程UTF-8UNICODEGBK

Word2003结构可以用Offvis简单查看一下,但Offvis的解析结果有点问题,我刚开始就是太相信它了,一直出问题,后来看了microsoft的官方文档才弄清楚了。
  Word2003结构比较复杂,具体的就不说了,参考文献结合源码应该很容易看清楚,要知道word2003中流的概念,所有的结构都是串起来的流,每个块的大小一般为0x200.
  Word2003中的文字存储进行了优化,可以按照ascii存放的字符就直接存成了ascii码,其他则进行Unicode编码后再存放。取出来要进行统一编码。

详细下载看。

上传的附件 脱离Office环境提取word中的数据.rar