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文档内容
- 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;
- }
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文档的内容
- 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();
- }
- }
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文档的内容
- 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 class="java" name="code">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>
java操作word,excel,pdf的更多相关文章
- Java操作word转pdf
如果转换后出现乱码,是doc格式的文档的话请转换为docx!!! 下载相关jar包和一个授权到2099年的凭证文件. 链接: https://pan.baidu.com/s/1xudkKqR1-TLL ...
- Java操作word文档使用JACOB和POI操作word,Excel,PPT需要的jar包
可参考文档: http://wibiline.iteye.com/blog/1725492 下载jar包 http://download.csdn.net/download/javashixiaofe ...
- Word,Excel,pdf,txt等文件上传并提取内容
近期项目需求:1.要用到各种文件上传,下载. 2.并对文件进行搜索. 3.仅仅要文件里包括有搜索的内容,所有显示出来. 今天正好有时间整理一下,方便以后阅读,及对须要用到的朋友提供微薄之力.首先在实现 ...
- Aspose.Words操作word生成PDF文档
Aspose.Words操作word生成PDF文档 using Aspose.Words; using System; using System.Collections.Generic; using ...
- Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件
Aspose是一个很强大的控件,可以用来操作word,excel,ppt等文件,用这个控件来导入.导出数据非常方便.其中Aspose.Cells就是用来操作Excel的,功能有很多.我所用的是最基本的 ...
- 利用aspose-words 实现 java中word转pdf文件
利用aspose-words 实现 java中word转pdf文件 首先下载aspose-words-15.8.0-jdk16.jar包 引入jar包,编写Java代码 package test; ...
- java 实现word 转 pdf
java 实现word 转 pdf 不知道网上为啥道友们写的这么复杂 ,自己看到过一篇还不错的 , 自己动手改了改 ,测试一下可以用 , 希望大家可以参考一下 , 对大家有帮助 1.引入jar ...
- C#Aspose操作Word & Excel简版(后会研究补充更多功能)
利用Aspose操作Word & Excel首先要在项目中标引用Aspose.Words.dll和Aspose.Cells.dll. 首先说一说向Word中写入数据,目前做的是向Word中的标 ...
- datatable导出到Word / Excel / PDF / HTML .NET
原文发布时间为:2011-01-21 -- 来源于本人的百度文章 [由搬家工具导入] IEnumerable - DataTable Export to Word / Excel / PDF / HT ...
- Java 操作Word书签(二):添加文本、图片、表格到书签内容
在Java操作Word书签(一)中介绍了给Word中的特定段落或文字添加书签.读取及删除已有书签的方法,本文将继续介绍Java 操作Word书签的方法,即如何给已有的书签添加内容,包括添加文本.图片. ...
随机推荐
- 预处理语句--#define、#error和#warning
1.#define语句 我们经常会这样定义一些宏: #define BLOCK 8192 但这样的宏却不能在字符串中展开,如: printf("The BLOCK numb ...
- [CF442C] Artem and Array (贪心+单调栈优化)
题目链接:http://codeforces.com/problemset/problem/442/C 题目大意:一个数列,有n个元素.你可以做n-2次操作,每次操作去除一个数字,并且得到这个数字两边 ...
- (String) 压缩String
e.g. aaabbcccc 返回a3b2c4 public static String compressString(String str) { StringBuilder sb=new S ...
- 【原】搭建Samba的简要过程
1.安装samba yum install samba –y 2.创建用户 useradd admin #先创建系统用户 smbpasswd -a admin #第一次加入需要-a参数,把admin用 ...
- out参数,ref参数,params参数数组
params参数数组 params关键字可以为方法指定数目可变的参数.params关键字修饰的参数,可以传入任意数目的同类型参数,甚至可以不传入参数. 不过params修饰的参数必须是方法的最后一个参 ...
- ios实现程序切入后台,实现后台任务 (转自)
,项目需求,是程序home键切入后台,3分钟后退出登陆, 首先,iOS 会再持续切入后台,给我们5秒钟的时间去处理相关数据,5秒后,程序不会再执行任何代码,处于挂起状态. - (void)applic ...
- 解决EditorLineEnds.ttr被锁定导致Delphi2006-2010无法启动的问题
在批处理最后增加了启动Delphi的命令.将批处理和Delphi放在同一目录即可. ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 ...
- mysql 不是主键不能删除的保护问题解决办法?
select * from t_answerexams; delete from t_answerexams where selectid = 'c4582502-8b27-44 ...
- LINQ to SQL快速上手 step by step
Step1:建立数据库 在使用Linq to Sql前,我们要将相应的数据库建好.在这个Demo中,使用的数据库是SQL Server Express 2005. 我们首先建立一个 ...
- java笔记1
第五天学习笔记 1.面对对象的理解并举例? 面对对象的核心:找合适的对象做合适的事情. 面对对象编程的思想:尽可能的用计算机语言来描述现实生活中的事物. 面对对象:侧重于对象 2.类与对象之间的关系? ...