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进行读取上传 ...
随机推荐
- linux安装flash player来播放视频
1下载64位flashplayer插件,可在此下载(偷偷赚俩金币,为省金币也可到官网去搜),得到flashplayer11_b2_install_lin_64_080811.tar.gz: http: ...
- NSOperation、NSOperationQueue(III)
NSOperation.NSOperationQueue 常用属性和方法归纳 NSOperation 常用属性和方法 a. 取消操作方法 //可取消操作,实质是标记 isCancelled 状态. - ...
- 大数据处理框架之Strom:kafka storm 整合
storm 使用kafka做数据源,还可以使用文件.redis.jdbc.hive.HDFS.hbase.netty做数据源. 新建一个maven 工程: pom.xml <project xm ...
- QT 继承QWidget && 继承QDialog
工作项目中,利用到Qt对话框,场景需求: 1. 一部分窗体需要继承自QWidget 2. 一部分窗体需要继承自QDialog 3. 两者均需要去掉标题栏图标,同时能够自由拖动. 如果两者分开继承实现, ...
- BIOS 搭配 MBR/GPT 的开机流程
鸟哥私房菜书上内容: BIOS 搭配 MBR/GPT 的开机流程 在计算机概论里面我们有谈到那个可爱的BIOS与CMOS两个东西, CMOS是记录各项硬件参数且嵌入在主板上面的储存器,BIOS则是一个 ...
- [转]Hive开发总结
看到一篇挺不错的hive开发总结文章,在此转载一下,有兴趣的可以去看原文,传送门HIVE开发总结. 基本数据类型 查看所有函数 搜索函数 搜索表 查看函数使用方法 关键字补全 显示表头 SET环境变量 ...
- flask模板的基本用法(定界符、模板语法、渲染模板),模板辅助工具(上下文、全局对象、过滤器、测试器、模板环境对象)
flask模板 在动态web程序中,视图函数返回的HTML数据往往需要根据相应的变量(比如查询参数)动态生成. 当HTML代码保存到单独的文件中时,我们没法再使用字符串格式化或拼接字符串的当时在HTM ...
- SQL 语法速记
----------------------------------DML(数据操作语言)---------------------------------- -- 一.INSERT VALUES语句 ...
- 匿名内部类和内部类中的this
package test; public class A extends B { public String toString() { return "A"; } public s ...
- The Little Prince-12/09
The Little Prince-12/09 今天中文书评+自述奥! 也许世界上也有五千朵和你一模一样的花,但只有你是我独一无二的玫瑰. ————喵喵喵,多么美妙的一句表白词呀! 时间会缓和所有的悲 ...