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. CSS笔记(七)列表

    CSS 列表属性允许你放置.改变列表项标志,或者将图像作为列表项标志. 参考:http://www.w3school.com.cn/css/css_list.asp 实例: <html> ...

  2. DB2常识

    1.DB2组件 appendixa. db2 database product and packaging informatin一节AESE: 高级企业服务器版(Advanced enterprise ...

  3. asp.net MVC开发过程中,使用到的方法(内置方法及使用说明)

    ® 视图的返回使用案例: [HttpGet] [SupportFilter] public ActionResult UserTopic(string type, string TopPicId, s ...

  4. 用Java集合中的Collections.sort方法对list排序的两种方法

    用Collections.sort方法对list排序有两种方法第一种是list中的对象实现Comparable接口,如下: ? 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 ...

  5. HDU3247 AC自动机+dp

    题意:给出n个资源,m个病毒,将资源串拼接成一个串,必须包含所有的资源串,可以重叠,但是不能包含病毒,问最小的长度为多少 题解:所有串建AC自动机.对以资源串结尾的结点跑bfs,求出到其他资源串结尾的 ...

  6. HDU5886 Tower Defence 【两遍树形dp】【最长链预处理】

    题意:N个点的一棵带权树.切掉某条边的价值为切后两树直径中的最大值.求各个边切掉后的价值和(共N-1项). 解法一: 强行两遍dp,思路繁琐,维护东西较多: dis表示以i为根的子树的直径,dis2表 ...

  7. 使用otl,报错:mysql Commands out of sync; you can't run this command now

    1.代码如下: void TestCache(otl_connect& otlConn) { try { ] = {}; sprintf(sql,"call test1(1)&quo ...

  8. Android照相机模块编程 照片颠倒问题及查询摄像头参数问题的解决

    这两天编程弄Android照相机模块,设置好各种参数后,发现预览的时候,照片是颠倒了,不是上下颠倒而是颠倒90°. 我的手机是华为U9200,用的Android4.0.3,后来看到http://www ...

  9. C++中构造函数调用构造函数

    今天想做道矩阵的题目时,却卡在一些编程细节上了,找了好久才发现原来是在构造函数处出了问题,然后上网百度了下,发现这篇文章说得很好:从一道题谈C++中构造函数调用构造函数,很棒! 还补充一点: 看来自己 ...

  10. final简介

    final简介 final用来修饰方法和属性表示特殊的意义.修饰方法时表示方法不能被重写:修饰属性时表示属性不能被改变,这里属性又分为对象和基本类型,修饰基本类型表示基本类型赋值以后不能再被赋值,修饰 ...