简单poi读取excel
1.添加依赖jar包
maven配置:
<!-- poi being -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.9</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml-schemas</artifactId>
<version>3.9</version>
</dependency>
<!-- poi end -->
或者,不是maven项目的话,直接在buildpath中添加jar包:

2.读取excel简单例子
package com.demo.excel.execute; import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List; import org.apache.poi.ss.usermodel.Cell;
import org.apache.poi.ss.usermodel.Row;
import org.apache.poi.ss.usermodel.Sheet;
import org.apache.poi.ss.usermodel.Workbook;
import org.apache.poi.ss.usermodel.WorkbookFactory; import com.demo.excel.modle.example.Book; /**
*
* @ClassName: ReadBooks
* @Description: 读取图书列表excel
* @author LCL
* @date 2016年9月2日
*
*/
public class ReadBooks {
private Workbook workbook;
private Sheet sheet;
private Row row;
private List<Book> books = new ArrayList<Book>(); /**
*
* @Title: readFile
* @Description: 将文件读入内存
* @param @param
* filePath 文件路径
* @return void null
*/
public void readFile(String filePath) {
try {
File excelFile = new File(filePath);
FileInputStream is = new FileInputStream(excelFile);
workbook = WorkbookFactory.create(is);
sheet = workbook.getSheetAt(0);
} catch (Exception e) {
e.printStackTrace();
}
} /**
*
* @Title: readLine
* @Description: 读取每一行的图书信息
* @return void null
*/
public void readLine() {
Iterator<Row> rows = sheet.rowIterator();
while (rows.hasNext()) {
row = (Row) rows.next();
if (row.getRowNum() ==0 ) {
continue;
}
Book book = new Book();
Iterator<Cell> cells = row.cellIterator();
while (cells.hasNext()) {
Cell cell = (Cell) cells.next();
if (cell.getCellType() == Cell.CELL_TYPE_NUMERIC && cell.getColumnIndex() == 0) {
book.setCode((int)cell.getNumericCellValue());
continue;
}
if (cell.getColumnIndex() == 1) {
book.setName(cell.getStringCellValue());
continue;
}
if (cell.getColumnIndex() == 2) {
book.setPress(cell.getStringCellValue());
continue;
}
if (cell.getColumnIndex() == 3) {
book.setDate(cell.getDateCellValue());
}
}
books.add(book);
}
} public List<Book> getBooks() {
return books;
}
}
Book.java
package com.demo.excel.modle.example; import java.text.DateFormat;
import java.text.SimpleDateFormat;
import java.util.Date; public class Book {
private int code;
private String name;
private String press;
private Date date;
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getPress() {
return press;
}
public void setPress(String press) {
this.press = press;
}
public Date getDate() {
return date;
}
public void setDate(Date date) {
this.date = date;
}
@Override
public String toString() {
return "Book [code=" + code + ", name=" + name + ", press=" + press + ", date=" + formatDate(date) + "]";
} private String formatDate(Date date) {
DateFormat format = new SimpleDateFormat("yyyy/MM/dd");
return format.format(date);
}
}
测试:
package com.demo.excel.db;
import com.demo.excel.execute.ReadBooks;
import junit.framework.TestCase;
public class ReadBooksTest extends TestCase {
private final String path = "E:/lichenli/storage/file/book.xlsx";
public void testReadBook() {
ReadBooks readbooks = new ReadBooks();
readbooks.readFile(path);
readbooks.readLine();
assertEquals(6, readbooks.getBooks().size());
}
}
文件内容

简单poi读取excel的更多相关文章
- JAVA使用POI读取EXCEL文件的简单model
一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...
- java用poi读取Excel表格中的数据
Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版.Apache POI 代 ...
- 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据
1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...
- 使用jxl,poi读取excel文件
作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...
- POI读取Excel内容格式化
在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...
- java使用poi读取ppt文件和poi读取excel、word示例
java使用poi读取ppt文件和poi读取excel.word示例 http://www.jb51.net/article/48092.htm
- Java开发小技巧(六):使用Apache POI读取Excel
前言 在数据仓库中,ETL最基础的步骤就是从数据源抽取所需的数据,这里所说的数据源并非仅仅是指数据库,还包括excel.csv.xml等各种类型的数据接口文件,而这些文件中的数据不一定是结构化存储的, ...
- 使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10
使用POI 读取 Excel 文件,读取手机号码 变成 1.3471022771E10 [问题点数:40分,结帖人xieyongqiu] 不显示删除回复 ...
- Java之POI读取Excel的Package should contain a content type part [M1.13]] with root cause异常问题解决
Java之POI读取Excel的Package should contain a content type part [M1.13]] with root cause异常问题解决 引言: 在Java中 ...
随机推荐
- python 学习笔记十三 JQuery(进阶篇)
jQuery 是一个 JavaScript 库. jQuery 极大地简化了 JavaScript 编程. 安装jQuery 有两个版本的 jQuery 可供下载: Production versio ...
- python ConfigParser配置读写
一.ConfigParser简介 ConfigParser 是用来读取配置文件的包.配置文件的格式如下:中括号"[ ]"内包含的为section.section 下面为类似于key ...
- 转:C++的重载(overload)与重写(override)
C++ override overload 的区别 override是指在不同作用域中,多个函数原型完全一样,而实现却不同的函数.在C++中,经常发生在类的继承中.当基类中的某个方法是virtual ...
- CSS 3 阴影,倒影,渐变
盒子阴影 box-shadow:盒子的阴影 第一个参数:设置的是阴影的水平偏移量 第二个参数:设置的是阴影的垂直偏移量 第三个参数:设置阴影的模糊程度 第四个参数:设置阴影外延值 第五个参数:阴影的颜 ...
- .net Web开发学习日志 —C/S和B/S结构区别
查看到<C/S和B/S结构区别整理> B/S结构与C/S结构都是有各自的优缺点: 前者无需安装,只要有浏览器即可,随时随地查询相关的业务,业务扩展强,维护强,共享强.在跨浏览器较难,响应速 ...
- Java 前后端分离研究
https://github.com/ulyn/eos https://github.com/lenbo-ma/jfinal-api-scaffold/
- [转]jQuery.validate插件在失去焦点时执行验证代码
转:http://my.oschina.net/enyo/blog/311566 关于 jquery.validate.js 表单验证插件如何在失去焦点时做验证.看手册后发现默认是在表单提交时执行验证 ...
- linux下mysql函数的详细案列
MYSQL * STDCALL mysql_real_connect(MYSQL *mysql, const char *host, const char *user, const char *pas ...
- App_GlobalResources.afvubzdv.resources.dll”--“拒绝访问。“
在使用ArcGIS Viewer for Silverlight创建应用程序的时候有时会出现编译错误 前面的忘了 最后是App_GlobalResources.afvubzdv.resources. ...
- 51nod 1445 变色DNA(dij)
题目链接:51nod 1445 变色DNA 看了相关讨论再去用最短路:val[i][j]之间如果是'Y',说明i可以到达j,并且i到达j的代价是i那行 1到j-1 里面'Y'的数量. 最后,求 0到n ...