1.注意的一点是sh.getLastRowNum(),比实际的行数少一行

涉及到的包:

aaarticlea/png;base64,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" alt="" />

public List<Map> getData(InputStream ins) throws Exception {
List<Map> list = new ArrayList<Map>(); //存放excel的data 每个list是sheet
//打开XSSFWorkbook
XSSFWorkbook wb = new XSSFWorkbook(ins);//获取HSSWorkbook
int sheetsNum = wb.getNumberOfSheets();//excel sheet
//解析sheet的数据
for(int i = 0 ; i < sheetsNum ; i++){
Map map = new HashMap();
int columnNum = 0;
XSSFSheet sh = wb.getSheetAt(i);//得到sheet
//解析行
int rowNum = 0;
rowNum = sh.getLastRowNum() + 1;
for(int j = 0 ; j <= sh.getLastRowNum() ; j++){
XSSFRow row = sh.getRow(j);
if(row == null){
rowNum --;
continue;
}
//解析列
for(int z = 0; z < row.getLastCellNum(); z++){
XSSFCell cell = row.getCell(z);
if(cell != null){
if(cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC){
map.put(j + "" + z, cell.getNumericCellValue());
}
if(cell.getCellType() == HSSFCell.CELL_TYPE_STRING){
map.put(j + "" + z, cell.getStringCellValue());
}
}
}
columnNum = row.getLastCellNum();
}
if(sh.getLastRowNum() != 0 || columnNum != 0){
map.put("rowNum" ,rowNum);
map.put("columnNum", columnNum);
list.add(map);
}
}
return list;
}

poi 读取 excel(.xlsx) 2007及以上版本的更多相关文章

  1. 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中 ...

  2. POI读取Excel数据

    POI读取Excel表格数据 * {所需相关jar下载: * commons-collections4-4.4.jar * commons-compress-1.19.jar * poi-4.1.1. ...

  3. JAVA使用POI读取EXCEL文件的简单model

    一.JAVA使用POI读取EXCEL文件的简单model 1.所需要的jar commons-codec-1.10.jarcommons-logging-1.2.jarjunit-4.12.jarlo ...

  4. java用poi读取Excel表格中的数据

    Java读写Excel的包是Apache POI(项目地址:http://poi.apache.org/),因此需要先获取POI的jar包,本实验使用的是POI 3.9稳定版.Apache POI 代 ...

  5. Java开发小技巧(六):使用Apache POI读取Excel

    前言 在数据仓库中,ETL最基础的步骤就是从数据源抽取所需的数据,这里所说的数据源并非仅仅是指数据库,还包括excel.csv.xml等各种类型的数据接口文件,而这些文件中的数据不一定是结构化存储的, ...

  6. 项目一:第四天 1、快递员的条件分页查询-noSession,条件查询 2、快递员删除(逻辑删除) 3、基于Apache POI实现批量导入区域数据 a)Jquery OCUpload上传文件插件使用 b)Apache POI读取excel文件数据

    1. 快递员的条件分页查询-noSession,条件查询 2. 快递员删除(逻辑删除) 3. 基于Apache POI实现批量导入区域数据 a) Jquery OCUpload上传文件插件使用 b) ...

  7. 使用poi读取excel数据示例

    使用poi读取excel数据示例 分两种情况: 一种读取指定单元格的值 另一种是读取整行的值 依赖包: <dependency> <groupId>org.apache.poi ...

  8. 使用jxl,poi读取excel文件

    作用:在java后台添加一个方法,读取导入的excel内容,根据需要返回相应的sql语句,以完成对临时表的插入操作. 使用jxl读取excel文件 package com.sixthf.bi.sapp ...

  9. POI读取Excel内容格式化

    在用POI读取Excel内容时,经常会遇到数据格式化的问题. 比如:数字12365会变为12365.0;字符串数字123也会变为123.0,甚至会被变为科学计数法.另外日期格式化也是一个头疼的问题.其 ...

  10. java使用poi读取ppt文件和poi读取excel、word示例

    java使用poi读取ppt文件和poi读取excel.word示例 http://www.jb51.net/article/48092.htm

随机推荐

  1. [C和指针]第一部分

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. HDU 5810 Balls and Boxes(盒子与球)

     Balls and Boxes(盒子与球) Time Limit: 2000/1000 MS (Java/Others)    Memory Limit: 65536/65536 K (Java/O ...

  3. Android Fast ImageLoader

    前段时间写的Android平台开源项目:Fast ImageLoader,现在分享给大家 源码地址:https://github.com/cumtkangyi/Android-Fast-ImageLo ...

  4. eclipse 安装git

    1.安装Git 首先安装Git.这里只讲Windows环境下安装Git方法. 从Git下载git的Windows安装文件,一路Next到选择安装组件这一步: 选上Git Bash Here这一项,这样 ...

  5. [转载] 深入理解Linux修改hostname

    原文: http://www.cnblogs.com/kerrycode/p/3595724.html 当我觉得对Linux系统下修改hostname已经非常熟悉的时候,今天碰到了几个个问题,这几个问 ...

  6. [转载] C++ STL string的Copy-On-Write技术

    原文: http://coolshell.cn/articles/12199.html stl的string是经过严格优化的, 深入理解对以后编程过程中应用string非常有益处, 感谢左耳朵耗子的精 ...

  7. 用Jquery获取select的value和text值

    $("#select_id").change(function(){//code...}); //为Select添加事件,当选择其中一项时触发 var checkText=$(&q ...

  8. python仿微软记事本

    # -*- coding=utf-8 -*- from tkinter import filedialog import tkinter as tk import tkinter.scrolledte ...

  9. iOS开发之引用百度地图SDK(一)-----------SDK开发指南

    (void)viewWillAppear:(BOOL)animated { [_mapView viewWillAppear]; _mapView.delegate = self; // 此处记得不用 ...

  10. C++——友元、异常和其他

    一.友元 类并非只能拥有友元函数,也可以将类作为友元.在这种情况下,友元类的所有方法都可以访问原始类的私有成员和保护成员.另外,也可以做更严格的限制,只将特定的成员函数指定为另一个类的友元.哪些函数. ...