java利用poi解析excel文件
首先需要引入以下jar包

如果使用maven,需要添加两个依赖
<dependencies>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>3.15</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>3.15-beta2</version>
</dependency>
</dependencies>
excel分为两种后缀,一是xls,二是xlsx。
首先针对xls格式的excel进行解析:
public List<String[]> readExcel(File file){
List<String[]> list = new ArrayList<>();
try {
HSSFWorkbook hw = new HSSFWorkbook(new FileInputStream(file));
for (int i = 0; i < hw.getNumberOfSheets(); i++) {
HSSFSheet hs = hw.getSheetAt(i);
if(hs.getLastRowNum() == 0)
continue;
for (int j = 0; j <= hs.getLastRowNum(); j++) {//
HSSFRow row = hs.getRow(j);
String[] array = new String[row.getLastCellNum()];
for (int k = 0; k < row.getLastCellNum(); k++) {
HSSFCell cell = row.getCell(k);
array[k] = this.getValue(cell);
}
list.add(array);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
private String getValue(HSSFCell cell){
String value;
CellType type = cell.getCellTypeEnum();
switch (type) {
case STRING:
value = cell.getStringCellValue();
break;
case BLANK:
value = "";
break;
case BOOLEAN:
value = cell.getBooleanCellValue() + "";
break;
case NUMERIC:
value = cell.getNumericCellValue() + "";
break;
case FORMULA:
value = cell.getCellFormula();
break;
case ERROR:
value = "非法字符";
break;
default:
value = "";
break;
}
return value;
}
对于xlsx格式的excel,与上者的区别在于将HSSF***换成XSSF***,样例如下:
public List<String[]> readExcel(File file){
List<String[]> list = new ArrayList<>();
try {
XSSFWorkbook xw = new XSSFWorkbook(new FileInputStream(file));
for (int i = 0; i < xw.getNumberOfSheets(); i++) {
XSSFSheet xs = xw.getSheetAt(i);
if(xs.getLastRowNum() == 0)
continue;
for (int j = 0; j <= xs.getLastRowNum(); j++) {
XSSFRow row = xs.getRow(j);
String[] array = new String[row.getLastCellNum()];
for (int k = 0; k <= row.getLastCellNum(); k++) {
XSSFCell cell = row.getCell(k);
if(cell == null)
continue;
array[k] = this.getValue(cell);
}
list.add(array);
}
}
} catch (IOException e) {
e.printStackTrace();
}
return list;
}
private String getValue(XSSFCell cell){
String value;
CellType type = cell.getCellTypeEnum();
switch (type) {
case STRING:
value = cell.getStringCellValue();
break;
case BLANK:
value = "";
break;
case BOOLEAN:
value = cell.getBooleanCellValue() + "";
break;
case NUMERIC:
value = cell.getNumericCellValue() + "";
break;
case FORMULA:
value = cell.getCellFormula();
break;
case ERROR:
value = "非法字符";
break;
default:
value = "";
break;
}
return value;
}
java利用poi解析excel文件的更多相关文章
- java利用poi生成excel文件后下载本地
1.该功能需要poi的jar包,链接: http://pan.baidu.com/s/1migAtNq 密码: 38fx. 2.首先新建一个实体类,用以存放单个数据 public class Test ...
- Java 利用 poi 生成 Excel文件的通用例子
在用java 写数据库应用的时候, 通常会生成各种报表,而这些报表可能会被导出为各种格式的文件,比如Excel文档,pdf 文档等等. 今天先做了一个生成Excel 文档的例子,主要解决以下问题: 生 ...
- java使用POI实现excel文件的读取,兼容后缀名xls和xlsx
需要用的jar包如下: 如果是maven管理的项目,添加依赖如下: <!-- https://mvnrepository.com/artifact/org.apache.poi/poi --&g ...
- Java Struts2 POI创建Excel文件并实现文件下载
Java Struts2 POI创建Excel文件并实现文件下载2013-09-04 18:53 6059人阅读 评论(1) 收藏 举报 分类: Java EE(49) Struts(6) 版权声明: ...
- 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文件
public String writeExcel(List<MedicalWhiteList> MedicalWhiteList) { if(MedicalWhiteList == nul ...
- poi解析Excel文件版本问题
poi解析Excel文件时有两种格式: HSSFWorkbook格式用来解析Excel2003(xls)的文件 XSSFWorkbook格式用来解析Excel2007(xlsx)的文件 如果用HSSF ...
- java使用jxl,poi解析excel文件
public interface JavaExcel { /** * 使用jxl写excel文件 */ public void writeJxlExcel(); /** * 使用jxl读excel文件 ...
- Java通过jxl解析Excel文件入库,及日期格式处理方式 (附源代码)
JAVA可以利用jxl简单快速的读取文件的内容,但是由于版本限制,只能读取97-03 xls格式的Excel. 本文是项目中用到的一个实例,先通过上传xls文件(包含日期),再通过jxl进行读取上传 ...
随机推荐
- 定义一个Rectangle类,该类提供getLength和getWidth方法。
import java.util.Comparator; /** * 定义一个Rectangle类,该类提供getLength和getWidth方法.利用图1-18中的findMax例程编写 * 一种 ...
- Ubuntu系统添加搜狗输入法
前端开发时有时候要接触到Ubuntu系统,但由于本身没有拼音输入,故需要自己安装搜狗,记录方法如下: 1.安装前先升级资源库并安装输入法依赖包: $sudo apt-get update $sudo ...
- Unity shader学习之Grab Pass实现玻璃效果
GrabPass可将当前屏幕的图像绘制在一张纹理中,可用来实现玻璃效果. 转载请注明出处:http://www.cnblogs.com/jietian331/p/7201324.html shader ...
- python deque
Deque objects support the following methods: append(x)¶ Add x to the right side of the deque. append ...
- Python全栈-day10-函数2
函数高级篇 1.函数嵌套 1)嵌套定义 在函数内定义另外一个函数 def func(): print('嵌套定义') def func1(): print('这是一个嵌套函数') def func2( ...
- Echo团队团队展示
班级:软件工程1916|W 作业:团队作业第一次-团队展示 团队名称:Echo 课程目标:展示团队 成员信息 队员学号 队员姓名 个人博客地址 备注 221600418 黄少勇 http://www. ...
- 变量为空代表false
name = ''#名字为空即代表False while not name:#not name=False即 真,将执行循环体 print('Enter your name:') name = inp ...
- win10安装mongodb-win32-x86_64-2008plus-ssl-3.4.10-signed
1.下载mongodb在windows下的安装文件 首先去官网https://www.mongodb.com/download-center?jmp=nav#community下载安装文件.mongo ...
- Axis2之Spring装配
本章主要介绍axis2接口在spring项目中的整合配置. 使用jar包:axis2-1.6.2 spring2.5.6 目录结构: 关键代码: package com.alfred.bean; pu ...
- 【封装函数】当前元素距离html文档顶部距离
function getPositionTop(node) { var top = node.offsetTop; var parent = node.offsetParent; while(pare ...