Java 读取Excel获取真实行数 您所在的位置:网站首页 listcontrol获取行数 Java 读取Excel获取真实行数

Java 读取Excel获取真实行数

#Java 读取Excel获取真实行数| 来源: 网络整理| 查看: 265

刚进入公司开发,熟悉环境是个很大的难题,今天就接到了一个任务,让我修改批量上传excel文件的页面.  公司采用的是apache提供的包,通过XML文件的映射,把EXCEL表和我们的Model对应起来.本来是校验正确的,结果莫名其妙到后面就会报空指针异常.  问题的原因:在没有格式的前提下,getLastRowNum方法能够正确返回最后一行的位置;getPhysicalNumberOfRows方法能够正确返回物理的行数;  * 在有格式的前提下,这两个方法都是不合理的;  * 所以,在做导入excel的时候,建议想要正确获取行数,可以做一个人为的约定,比如约定导入文件第一列不允许为空,行数就按照第一列的有效行数来统计;这样就能正确获取到实际想要的行数;

更新版本, 因为发现有时候 存在了加了样式的边框,边框的属性默认成为了 公式属性,导致后面空指针,现已修复

修改版

/** * 用来得到真实行数 * @param sheet * @param flag 需要写进数据库的Excel单元格列索引,多列用逗号隔开 比如Excel有5列单元格,其中4列 * 需要入库,第2列不需要入库,这里flag就传 [0,2,3,4] * @return * */ public static int findRealRows(Sheet sheet, int... flag) { int row_real = 0; int rows = sheet.getPhysicalNumberOfRows();// 此处物理行数统计有错误, int size = flag.length; try { for (int i = 1; i < rows; i++) { Row row = sheet.getRow(i); int total = 0; ArrayList blank =new ArrayList(); int type=-1; String s = null; for(int j:flag){ if(!(row.getCell(j) == null)&&row.getCell(j).getCellType()2) { total++; if(!(row.getCell(j) == null)&&row.getCell(j).getCellType()


【本文地址】

公司简介

联系我们

今日新闻

    推荐新闻

    专题文章
      CopyRight 2018-2019 实验室设备网 版权所有