首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > Apache >

使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累

2013-10-08 
使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发笔记【经验积累】为了

使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发笔记【经验积累】
为了对文件内容进行索引,必须先抽取出文件中文本。我们使用Apache POI提供的API来抽取office文件(DOC, DOCX, XLS, XLSX, PPT, PPTX)中的文本。很多人在文件使用开源API的时候都很纳闷,Javadocs那么大,我要的API在到底在那个类里边。即使找到了也不明白这么多构造函数该用哪个创建想要的对象。本文给大家讲一下POI中我们该如何创建抽取(DOC, DOCX, XLS, XLSX, PPT, PPTX)的对象。下载Apache POI(http://poi.apache.org/download.html#POI-3.10-beta2)把下面5个jar包和两个lib文件夹中的jar导入项目classpath


                介绍一下最后两种:
                最后第二种接收InputStream来创建对象;
                最后一种接收POIFSFileSystem来创建对象:
                        使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
                         POIFSFileSystem也接收InputStream来接收对象。
                 
                 回过头来看看最后第三个构造函数,接收HWPFDocument来创建对象;
                         使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
                         而HWPFDDocument通过接收InputStream或者POIFSFileSystem来创建对象。


DOCX 

org.apache.poi.POITextExtractor

        org.apache.poi.POIXMLTextExtractor
                org.apache.poi.xwpf.extractor.XWPFWordExtractor

      这个类能够处理excel2007+(.docx)

     (1)该类对象的父类可以使用ExtratorFactory生成,但需要接收的参数是个virtual 对象OPCPackage,该对象不好确定。因此我们直接使用(2)中的方法创建对象
     (2)新建XWPFWordExtractor对象
               使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
                我们使用第二个构造函数,通过接收XWPFDocument对象来创建
                     使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
                      XWPFDocument可以接收inputStream对象。


XLS

org.apache.poi.hssf.extractor.ExcelExtractor

     这个类只能处理excel 2003(.xls)
     (1)同DOC,通过ExtractorFactory创建
     (2)新建ExcelExtractor对象
               使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
               1)同DOC,通过接收POIFSFileSystem来创建对象
               2)通过接收HSSFWorkbook来创建对象
                    使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
                    HSSFWorkbook对象可以通过接收POIFSFileSystem或者InputStream对象来创建
               

           样例代码:


               通过接收XSSFWorkbook对象来创建:
                    使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
                     发现XSSFWorkbook可以接收inputStream对象


PPT

org.apache.poi.hslf.extractor.PowerPointExtractor

          (1)同DOC,用ExtractorFactory创建对象
          (2)直接使用PowerPointExtractor创建对象
             使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
               通过接收HSLFSlideShow对象、POIFSFileSystem对象或文件名即可创建。               


PPTX

org.apache.poi.POITextExtractor

         org.apache.poi.POIXMLTextExtractor
                org.apache.poi.xslf.extractor.XSLFPowerPointExtractor



           同XLSX,直接创建XSLFPowerPointExtractor对象
               使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
               (1)接收XMLSlideShow对象
                         使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
                             通过接收InputStream来创建XMLSlideShow对象

               (2)接收XSLFSlideShow对象
                           使用Apache POI抽取OFFICE文本(DOC, DOCX, XLS, XLSX, PPT, PPTX)——Desktop Search开发札记【经验积累】
                              通过接收文件路径即可创建XSLFSlideShow对象










热点排行