广州北大青鸟计算机职业培训学校
互联网技术培训、软件技术培训、大数据培训、云计算培训、数据分析培训信息网
当前位置:网站首页 > 软件教程 > Java技术 > 正文

干货:教你如何用java读取word,excel和pdf文档内容

作者:邓华发布时间:2020-10-30分类:Java技术浏览:1576


导读:教你如何用java读取word,excel和pdf文档内容,快来get!

java操作office和pdf文件(一)java读取word,excel和pdf文档内容

2015-01-19  bubbi7   阅 68  转 1

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


首先我们来认识一下读取相关文档的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文档内容

[java] view plaincopyprint?

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文档的内容



[java] view plaincopyprint?

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文档的内容


[java] view plaincopyprint?

import java.io.File;     

import java.io.FileInputStream;     

import org.pdfbox.pdfparser.PDFParser;     

import org.pdfbox.pdmodel.PDDocument;     

import org.pdfbox.util.PDFTextStripper;     

  

/**  

*  

* @author 曹胜欢 

*/   

<pre name="code" class="java">public class PdfFile{     

  

    public String getContent(File f) throws Exception {     

        FileInputStream fis = new FileInputStream(f);     

        PDFParser p = new PDFParser(fis);     

        p.parse();     

        PDDocument pdd = p.getPDDocument();     

        PDFTextStripper ts = new PDFTextStripper();     

        String c = ts.getText(pdd);     

        pdd.close();     

        fis.close();     

        return c;     

    }     

}</pre><br>  

   


标签:JavaJAVA培训JAVA工作JAVAJAVA就业JAVA学什么javawordexcelpdf


Java技术排行
标签列表
网站分类
文章归档
最近发表