最近做了office2003和office2007的解析!在寻找了诸多资料过后,完整的解析出了这六种格式(doc,xls,ppt,docx,xlsx,pptx),能提取出这些文件的文字信息。解析office2003的比较简单!可以直接在网上搜开源包,POI的最新的版本下载后,参照例子,就可以解析出来,才开始做的时候从小的地方入手,一点一点的来!
这里主要说下office2007的问题!因为现在最新版本的poi对于office2007还不能很好的解析,所以只有另辟蹊径!我们首先要知道office2007和2003的区别,07版本的在windows操作系统下面用解压软件可以打开,发现里面是很多.xml文件!如.docx的word文档打开过后可以看到word/document.xml这个文件,打开这个文件,里面是xml格式的代码,你会发现,所有的最原始的文字都在这里面,这就是我们需要的,而其他什么格式啊,样式啊,都是无关紧要的,主要是提取出文字信息!既然是.xml格式的,那我们又必须要解析.xml
好在java就是开源的东西比较多,网上搜一搜,就可以找出一堆解析.xml文件的库,我使用的是net.htmlparser.jericho.Source这个库,然后用这个库来解析你找到的word/document.xml文件,当然打开这个docx文件的时候要用到ZipInputStream,getNextEntry()方法来一个一个找来得到需要的文件!最后就是调用xml库来解析这个xml文件就可以提取出文字信息啦!
同样的分析方法,都打开pptx和xlsx,你也会存储文字信息的xml文件,在用同样的方法就可以解决啦!只是pptx是每一页,就是每一个slide是一个xml,你的ppt有多少页,就会有多少个slide.xml,需要做一些算,这个就希望大家动脑啦!而xlsx我现在解析的也不是很完整,但是90%可以解析出来,只是有时候输入的数字会不载xl/sharedStrings.xml这个文件里面,比较奇怪,有时候在有时候不在,不能确定,所以也就不能编出确定的程序来,如果文件的内容不同,xlsx生成的xml也会在有不同!还需要分析分析!
有点晚啦,困了!先写到这里,具体还有啥子问题的!我在来详细回答下好了!我也是新手,往大虾们别丢砖!谢谢!