使用poi读写excel文件
使用poi读写excel文件
今天一个同学需要处理一个excel文件,于是我便在网上搜了一下方法,顺便自己研究一下。刚刚参考网上资料,使用poi库测试了一下读取excel文件,效果不错,跟大家分享一下。
要读取的excel文件内容如下:
第一列是数值型,第二列是字符型,代码如下:
01
|
package poi;
|
02
|
03
|
import java.io.FileInputStream;
|
04
|
import java.io.InputStream;
|
05
|
import java.util.Iterator;
|
06
|
07
|
import org.apache.poi.hssf.extractor.ExcelExtractor;
|
08
|
import org.apache.poi.hssf.usermodel.HSSFCell;
|
09
|
import org.apache.poi.hssf.usermodel.HSSFRow;
|
10
|
import org.apache.poi.hssf.usermodel.HSSFSheet;
|
11
|
import org.apache.poi.hssf.usermodel.HSSFWorkbook;
|
12
|
import org.apache.poi.poifs.filesystem.POIFSFileSystem;
|
13
|
import org.apache.poi.ss.usermodel.Cell;
|
14
|
import org.apache.poi.ss.usermodel.Row;
|
15
|
16
|
/**
|
17
|
* 测试poi读取excel文件内容
|
18
|
* @author lihui
|
19
|
*
|
20
|
*/
|
21
|
public class TestRead {
|
22
|
23
|
/**
|
24
|
* @param args
|
25
|
*/
|
26
|
public static void main(String[] args){
|
27
|
28
|
HSSFWorkbook wb = null ;
|
29
|
POIFSFileSystem fs = null ;
|
30
|
try {
|
31
|
//设置要读取的文件路径
|
32
|
fs = new POIFSFileSystem( new FileInputStream( "d:\\book1.xls" ));
|
33
|
//HSSFWorkbook相当于一个excel文件,HSSFWorkbook是解析excel2007之前的版本(xls)
|
34
|
//之后版本使用XSSFWorkbook(xlsx)
|
35
|
wb = new HSSFWorkbook(fs);
|
36
|
//获得sheet工作簿
|
37
|
HSSFSheet sheet = wb.getSheetAt( 0 );
|
38
|
//获得行
|
39
|
HSSFRow row = sheet.getRow( 3 );
|
40
|
//获得行中的列,即单元格
|
41
|
HSSFCell cell = row.getCell( 0 );
|
42
|
//获得单元格中的值,这里该单元格的值为数字,所以使用getNumericCellValue,如为字符串则会报错
|
43
|
//如何取别的值,见print2方法
|
44
|
double msg = cell.getNumericCellValue();
|
45
|
System.out.println(msg);
|
46
|
print1();
|
47
|
print2();
|
48
|
} catch (Exception e) {
|
49
|
e.printStackTrace();
|
50
|
}
|
51
|
}
|
52
|
53
|
public static void print1() throws Exception {
|
54
|
InputStream is = new FileInputStream( "d:\\book1.xls" );
|
55
|
HSSFWorkbook wb = new HSSFWorkbook( new POIFSFileSystem(is));
|
56
|
//A text extractor for Excel files.
|
57
|
//Returns the textual content of the file, suitable for indexing by something like Lucene,
|
58
|
//but not really intended for display to the user.
|
59
|
//用来获得整个excel文件的内容,表示为字符串
|
60
|
ExcelExtractor extractor = new ExcelExtractor(wb);
|
61
|
//字符串所包含的类型,详见api
|
62
|
extractor.setIncludeSheetNames( true );
|
63
|
extractor.setFormulasNotResults( false );
|
64
|
extractor.setIncludeCellComments( true );
|
65
|
//获得字符串形式
|
66
|
String text = extractor.getText();
|
67
|
System.out.println(text);
|
68
|
}
|
69
|
70
|
public static void print2() throws Exception {
|
71
|
HSSFWorkbook wb = new HSSFWorkbook( new FileInputStream(
|
72
|
"d:\\book1.xls" ));
|
73
|
HSSFSheet sheet = wb.getSheetAt( 0 );
|
74
|
//迭代行
|
75
|
for (Iterator<Row> iter = (Iterator<Row>) sheet.rowIterator(); iter
|
76
|
.hasNext();) {
|
77
|
Row row = iter.next();
|
78
|
//迭代列
|
79
|
for (Iterator<Cell> iter2 = (Iterator<Cell>) row.cellIterator(); iter2
|
80
|
.hasNext();) {
|
81
|
Cell cell = iter2.next();
|
82
|
//用于测试的文件就2列,第一列为数字,第二列为字符串
|
83
|
//对于数字cell.getCellType的值为HSSFCell.CELL_TYPE_NUMERIC,为0
|
84
|
//对于字符串cell.getCellType的值为HSSFCell.CELL_TYPE_STRING,为1
|
85
|
//完整的类型列表请查看api
|
86
|
String content = cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC?cell.getNumericCellValue()+ "" :cell.getStringCellValue();
|
87
|
System.out.println(content);
|
88
|
}
|
89
|
}
|
90
|
}
|
91
|
92
|
}
|
下面是创建一个excel文件
代码是参考网上自己做了些修改,加了些注释,已经写得很详细了,我就不多说了。poi库的下载地址可以去官方http://apache.freelamp.com/jakarta/poi/ 下载,我使用的是最新稳定版3.7,这里我也提供单独的jar包给大家下载http://cangzhitao.com/wp-content/uploads/2011/03/poi-3.7-20101029.jar
附cell类型说明:
使用poi读写excel文件相关推荐
- java读写excel文件poi_Java利用POI读写Excel文件工具类
本文实例为大家分享了Java读写Excel文件工具类的具体代码,供大家参考,具体内容如下 package com.test.app.utils; import java.io.File; import ...
- Java:apache.poi读写Excel文件
依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</ar ...
- Selenium利用POI读写excel文件
第三方工具POI,由于Java的跨平台特性,所以Java没有直接操作excel文件的库支持.在自动化测试,有些我们的测试数据是放到excel文件中,所以需要懂得如何操作获取excel内的内容. 下载P ...
- 使用EasyExcel读写Excel文件
笔者之前一直使用POI读写Excel文件,最近有个需求需要读取大概80万行数据的Excel,使用POI读取到10.2万行左右就卡死不动了,而且CPU占用直接拉满到100%,内存占用也很高. 查找资料后 ...
- 基于POI的读写Excel文件的工具类
依赖的jar包: import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStrea ...
- Java 使用 POI 对 Excel文件 进行读写操作
Java 使用 POI 对 Excel文件 进行读写操作 一.背景 目前正在做一个问卷功能模块,收集完问卷信息后,需要将数据库中的数据导出到Excel数据表中进行留存,因此就学习了在Java中如何对E ...
- Java操作Excel之POI:java读写excel文件以及打印设置
Java操作Excel之POI:java读写excel文件以及打印设置 POI的jar包下载地址:http://poi.apache.org/download.html 注意:项目中导入poi 4.0 ...
- springboot中使用poi导出excel文件(亲测实现了第一个功能)
1.POI简介 Jakarta POI 是一套用于访问微软格式文档的Java API. 组件HWPF用于操作Word的; 组件HSSF用于操作Excel格式文件. 2.常用组件 HSSFWorkboo ...
- Apache POI操作Excel文件
Apache POI是用Java编写的免费开源的跨平台的Java API,Apache POI提供API给Java程序对Microsoft Office格式档案读和写的功能,其中使用最多的就是使用PO ...
最新文章
- 数字图像处理——第三章 空间域图像增强(灰度变换和直方图处理)
- linux 删除20日前数据,Linux 维护常用命令
- 27.能否在构造函数中抛出异常?析构函数呢?
- 简述抽象和封装,对你学习Java有一些作用
- BaseRecyclerViewAdapterHelper结合autolayout使用
- 大海中到处是水,海底隧道是怎样修建的?看完真佩服工程师的智慧
- 居家隔离的第5天,我们整了个六边形战士
- 【Java】JavaSocket编程开发聊天室-总览与部分客户端界面
- 酷派D530刷机指引之官方ROM
- 中南财经政法大学2014-2015学年学生奖励汇总表
- 屏幕录像软件Community Clips Recorder简介及其使用技巧(郝宪玮)
- Stacked Hourglass Networks
- 万字吐血好文,一线分析师的4大总结。
- mysql语法使用总结
- 独立性与互不相容的区别
- Python pta题目
- java设计奥运图标_15组优秀的奥运会、体育运动类图标系列网页素材
- java计算机毕业设计-线上自助旅游报名网-源程序+mysql+系统+lw文档+远程调试
- 经典名言名句(摘抄)
- Yunzai-Bot v3—Linux服务器搭建教程
热门文章
- Python: Python 多版本管理
- Google Ads你知道多少,谷歌广告投放又有哪些要注意的细节?
- 10个Spring Boot快速开发的项目,接私活利器(快速、高效)
- android pdf 文件加密,加密PDF与PdfBox-Android不兼容
- JAVA面试集合类之ArrayList详解
- 操作系统——银行家算法(银行家和房地产开发商的爱恨情仇)
- 毕昇JDK,重现了 “活字印刷术” 的传奇
- unity 性能优化之GPU和资源优化
- 【网络工程】如何本地调试微信公众号开发教程(Nginx代理方法)
- 执行 Workgroup Manager 维护任务