在平常应用程序中,对officepdf文档进行读取数据是比较常见的功能,尤其在很多web应用程序中。所以今天我们就简单来看一下javawordexcelpdf文件的读取。本篇博客只是讲解简单应用。如果想深入了解原理。请读者自行研究一些相关源码。

 

首先我们来认识一下读取相关文档的jar包:

 

1. 引用POI包读取word文档内容

poi.jar 下载地址

http://apache.freelamp.com/poi/release/bin/poi-bin-3.6-20091214.zip  http://apache.etoak.com/poi/release/bin/poi-bin-3.6-20091214.zip  http://labs.renren.com/apache-mirror/poi/release/bin/poi-bin-3.6-20091214.zip

 

2.引用jxl包读取excel文档的内容

Jxl.jar下载地址

http://nchc.dl.sourceforge.net/project/jexcelapi/CSharpJExcel/CSharpJExcel.zip

 

3.引用PDFBox读取pdf文档的内容

Pdfbox.jar下载地址

http://labs.renren.com/apache-mirror/pdfbox/1.1.0/pdfbox-1.1.0.jar  http://apache.etoak.com/pdfbox/1.1.0/pdfbox-1.1.0.jar  http://apache.freelamp.com/pdfbox/1.1.0/pdfbox-1.1.0.jar

Fontbox.jar下载地址

http://apache.etoak.com/pdfbox/1.1.0/fontbox-1.1.0.jar  http://labs.renren.com/apache-mirror/pdfbox/1.1.0/fontbox-1.1.0.jar  http://apache.freelamp.com/pdfbox/1.1.0/fontbox-1.1.0.jar

Jempbox.jar下载地址

http://labs.renren.com/apache-mirror/pdfbox/1.1.0/jempbox-1.1.0.jar  http://apache.etoak.com/pdfbox/1.1.0/jempbox-1.1.0.jar  http://apache.freelamp.com/pdfbox/1.1.0/jempbox-1.1.0.jar

下面我们就来简单看一下这些jar包的对文档的读取的应用实例:

 

1. 引用POI包读取word文档内容

 

  1. import java.io.File;     
  2. import java.io.FileInputStream;     
  3. import org.apache.poi.hwpf.HWPFDocument;     
  4. import org.apache.poi.hwpf.usermodel.Range;     
  5.   
  6. /**  
  7. *  
  8. * @author 曹胜欢 
  9. */   
  10. public class DocFile{     
  11.   
  12.   
  13.     @Override   
  14.     public String getContent(File f) throws Exception {     
  15.         FileInputStream fis = new FileInputStream(f);     
  16.         HWPFDocument doc = new HWPFDocument(fis);     
  17.         Range rang = doc.getRange();     
  18.         String text = rang.text();     
  19.         fis.close();     
  20.         return text;     
  21.     }     
import java.io.File;   
import java.io.FileInputStream;   
import org.apache.poi.hwpf.HWPFDocument;   
import org.apache.poi.hwpf.usermodel.Range;   

/** 
* 
* @author 曹胜欢
*/ 
public class DocFile{   


    @Override 
    public String getContent(File f) throws Exception {   
        FileInputStream fis = new FileInputStream(f);   
        HWPFDocument doc = new HWPFDocument(fis);   
        Range rang = doc.getRange();   
        String text = rang.text();   
        fis.close();   
        return text;   
    }   

2.引用jxl包读取excel文档的内容

 

 

  1. import java.io.File;     
  2. import java.io.FileInputStream;     
  3. import jxl.Cell;     
  4. import jxl.Sheet;     
  5. import jxl.Workbook;     
  6.   
  7. /**  
  8. *  
  9. * @author 曹胜欢 
  10. */   
  11. public class XlsFile{     
  12.   
  13.     @Override     
  14.     public String getContent(File f) throws Exception {     
  15.      //构建Workbook对象, 只读Workbook对象  
  16.      //直接从本地文件创建Workbook  
  17.       //从输入流创建Workbook  
  18.   
  19.         FileInputStream fis = new FileInputStream(f);     
  20.         StringBuilder sb = new StringBuilder();     
  21.         jxl.Workbook rwb = Workbook.getWorkbook(fis);     
  22. //一旦创建了Workbook,我们就可以通过它来访问  
  23. //Excel Sheet的数组集合(术语:工作表),  
  24. //也可以调用getsheet方法获取指定的工资表  
  25.         Sheet[] sheet = rwb.getSheets();     
  26.         for (int i = 0; i < sheet.length; i++) {     
  27.             Sheet rs = rwb.getSheet(i);     
  28.             for (int j = 0; j < rs.getRows(); j++) {     
  29.                Cell[] cells = rs.getRow(j);     
  30.                for(int k=0;k<cells.length;k++)     
  31.                sb.append(cells[k].getContents());     
  32.             }     
  33.         }     
  34.         fis.close();     
  35.         return sb.toString();     
  36.     }     
  37.   
  38. }  
import java.io.File;   
import java.io.FileInputStream;   
import jxl.Cell;   
import jxl.Sheet;   
import jxl.Workbook;   

/** 
* 
* @author 曹胜欢
*/ 
public class XlsFile{   

    @Override   
    public String getContent(File f) throws Exception {   
     //构建Workbook对象, 只读Workbook对象
     //直接从本地文件创建Workbook
      //从输入流创建Workbook

        FileInputStream fis = new FileInputStream(f);   
        StringBuilder sb = new StringBuilder();   
        jxl.Workbook rwb = Workbook.getWorkbook(fis);   
//一旦创建了Workbook,我们就可以通过它来访问
//Excel Sheet的数组集合(术语:工作表),
//也可以调用getsheet方法获取指定的工资表
        Sheet[] sheet = rwb.getSheets();   
        for (int i = 0; i < sheet.length; i++) {   
            Sheet rs = rwb.getSheet(i);   
            for (int j = 0; j < rs.getRows(); j++) {   
               Cell[] cells = rs.getRow(j);   
               for(int k=0;k<cells.length;k++)   
               sb.append(cells[k].getContents());   
            }   
        }   
        fis.close();   
        return sb.toString();   
    }   

}

 

由上面代码我们可知:一旦得到了Sheet,我们就可以通过它来访问Excel Cell(术语:单元格)。参考下面的代码片段: //获取第一行,第一列的值 Cell c00 = rs.getCell(0, 0); String strc00 = c00.getContents(); //获取第一行,第二列的值 Cell c10 = rs.getCell(1, 0); String strc10 = c10.getContents(); 当你完成对Excel电子表格数据的处理后,一定要使用close()方法来关闭先前创建的对象,以释放读取数据表的过程中所占用的内存空间,在读取大量数据时显得尤为重要。

 

3.引用PDFBox读取pdf文档的内容

 

  1. import java.io.File;     
  2. import java.io.FileInputStream;     
  3. import org.pdfbox.pdfparser.PDFParser;     
  4. import org.pdfbox.pdmodel.PDDocument;     
  5. import org.pdfbox.util.PDFTextStripper;     
  6.   
  7. /**  
  8. *  
  9. * @author 曹胜欢 
  10. */   
  11. <pre class="java" name="code">public class PdfFile{     
  12.   
  13.     public String getContent(File f) throws Exception {     
  14.         FileInputStream fis = new FileInputStream(f);     
  15.         PDFParser p = new PDFParser(fis);     
  16.         p.parse();     
  17.         PDDocument pdd = p.getPDDocument();     
  18.         PDFTextStripper ts = new PDFTextStripper();     
  19.         String c = ts.getText(pdd);     
  20.         pdd.close();     
  21.         fis.close();     
  22.         return c;     
  23.     }     
  24. }</pre><br>  
posted on 2015-10-04 16:05  ぼやけるの毒キノコ  阅读(259)  评论(0编辑  收藏  举报