首页
社区
课程
招聘
[原创]脱离Office环境提取word中的数据
发表于: 2011-5-26 11:15 28223

[原创]脱离Office环境提取word中的数据

loudy 活跃值
10
2011-5-26 11:15
28223

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

脱离office环境提取word中数据

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

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

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

详细下载看。


[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课

上传的附件:
收藏
免费 7
支持
分享
最新回复 (47)
雪    币: 677
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
2
感谢楼主共享 研究一下
2011-5-26 12:06
0
雪    币: 615
活跃值: (187)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
3
楼主强大啊,赞一下楼主!
pdf和ppt文体提取会不? 感觉着两个比较难哦,word文本提取网上示例比较多了···
2011-5-26 13:05
0
雪    币: 2548
活跃值: (970)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
4
只要知道结构应该都不难,现在不需要提取,就不花时间研究了,你要有需求可以自己研究一下嘛
2011-5-26 14:21
0
雪    币: 615
活跃值: (187)
能力值: ( LV9,RANK:140 )
在线值:
发帖
回帖
粉丝
5
我是菜鸟,玩不起...
2011-5-26 16:12
0
雪    币: 53
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
6
是OpenXML吗?微软有出这个的SDK。
2011-5-30 11:49
0
雪    币: 204
活跃值: (11)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
7
高手,学习一下WORD的内容提取
2011-5-30 13:43
0
雪    币: 271
活跃值: (196)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
8
下载收藏学习。。。
2011-5-30 20:16
0
雪    币: 293
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
9
office旧版本的福音
2011-5-30 21:02
0
雪    币: 393
活跃值: (150)
能力值: (RANK:110 )
在线值:
发帖
回帖
粉丝
10
楼主威武,膜拜小习一下
2011-5-30 21:11
0
雪    币: 5467
活跃值: (3854)
能力值: ( LV13,RANK:283 )
在线值:
发帖
回帖
粉丝
11
多谢分享,期待其他文档结构
2011-5-30 22:01
0
雪    币: 578
活跃值: (14)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
12
学习收藏,感谢楼主共享
2011-5-30 22:08
0
雪    币: 5
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
13
挺好!
2011-5-30 22:27
0
雪    币: 202
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
14
顶一个,支持!!
2011-5-31 18:15
0
雪    币: 44
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
15
很好,先收藏,有空再研读下,嘻嘻
2011-5-31 18:49
0
雪    币: 1708
活跃值: (586)
能力值: ( LV15,RANK:670 )
在线值:
发帖
回帖
粉丝
16
是压缩包?不是流存储么?
2011-6-1 10:04
0
雪    币: 2548
活跃值: (970)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
17
2003是流,2007格式有变化,是一个压缩包包上些xml文件,如果要看成流也行,个人觉得只是观察角度不同
2011-6-1 12:50
0
雪    币: 34
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
18
支持下 好东西
2011-6-10 16:14
0
雪    币: 140
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
19
有兴趣,收下了.谢谢.
2011-6-18 02:15
0
雪    币: 92
活跃值: (154)
能力值: ( LV8,RANK:135 )
在线值:
发帖
回帖
粉丝
20
不知道楼主有没有这方面的中文资料。。。
2011-6-25 09:56
0
雪    币: 54
活跃值: (10)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
21
附件中的pre2007.dll的源代码可以传上吗??
2011-6-26 16:38
0
雪    币: 2548
活跃值: (970)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
22
实际就是一个压缩引擎,名字看着不方便就改了个名字,源代码网上随便找到
2011-6-26 17:14
0
雪    币: 2548
活跃值: (970)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
23
不好意思,这个真没有。
2011-6-26 17:16
0
雪    币: 357
活跃值: (3593)
能力值: ( LV3,RANK:25 )
在线值:
发帖
回帖
粉丝
24
你这个东西搞了多长时间?我也写过一个,不过很简单..没你研究那么透彻
2011-6-26 18:22
0
雪    币: 2548
活跃值: (970)
能力值: ( LV12,RANK:1010 )
在线值:
发帖
回帖
粉丝
25
其实也没有研究太透彻,用了可能一周多左右时间吧,把感兴趣的东西研究了下,其实就是个体力活。
2011-6-28 00:23
0
游客
登录 | 注册 方可回帖
返回
//