java操作office和pdf文件
2012-11-09 17:23
483 查看
(一)java读取word,excel和pdf文档内容
在平常应用程序中,对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;
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;
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;
public class PdfFile{
@Override
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 = super.toHtml(ts.getText(pdd));
pdd.close();
fis.close();
return c;
}
}
在平常应用程序中,对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;
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;
}
import java.io.File; import java.io.FileInputStream; import org.apache.poi.hwpf.HWPFDocument; import org.apache.poi.hwpf.usermodel.Range; 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;
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();
}
}
import java.io.File; import java.io.FileInputStream; import jxl.Cell; import jxl.Sheet; import jxl.Workbook; 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;
public class PdfFile{
@Override
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 = super.toHtml(ts.getText(pdd));
pdd.close();
fis.close();
return c;
}
}
相关文章推荐
- java操作office和pdf文件:读取word,excel和pdf文档内容
- Java程序员从笨鸟到菜鸟之(一百零六)java操作office和pdf文件(四)页面列表导出cvs,excel、pdf报表.
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- java操作office和pdf文件java读取word,excel和pdf文档内容
- Java程序员从笨鸟到菜鸟之(一百零五)java操作office和pdf文件(三)利用jxl实现数据导出excel报表以及与POI的区别
- Java程序员从笨鸟到菜鸟之(一百零六)java操作office和pdf文件(四)页面列表导出cvs,excel、pdf报表.
- java操作office和pdf文件(四)页面列表导出cvs,excel、pdf报表.
- Java程序员从笨鸟到菜鸟之(一百零六)java操作office和pdf文件(四)页面列表导出cvs,excel、pdf报表.
- java操作office和pdf文件页面列表导出cvs,excel、pdf报表.
- java操作office和pdf文件页面列表…
- Java程序员从笨鸟到菜鸟之(一百零三)java操作office和pdf文件(一)java读取word,excel和pdf文档内容
- Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表
- java操作office和pdf文件页面列表…
- Java程序员从笨鸟到菜鸟之(一百零四)java操作office和pdf文件(二)利用POI实现数据导出excel报表
- Java程序员从笨鸟到菜鸟之(一百零三)java操作office和pdf文件(一)java读取word,excel和pdf文档内容
- Java程序员从笨鸟到菜鸟之(一百零三)java操作office和pdf文件(一)java读取word,excel和pdf文档内容
- java操作office和pdf文件(四)页面列表导出cvs,excel、pdf报表.
- java操作office和pdf文件页面列表导出cvs,excel、pdf报表.
- java操作office和pdf文件页面列表导出cvs,excel、pdf报表.
- java使用pdfbox操作pdf文件