导入excel的时候excel中有一个单元格是空的话后边的就导入不进数据库了该在哪加判断?

private List> readExcelValue(Workbook wb) {
// 得到第一个shell
Sheet sheet = wb.getSheetAt(0);
// 得到Excel的行数
this.totalRows = sheet.getPhysicalNumberOfRows();
// 得到Excel的列数(前提是有行数)
if (totalRows > 1 && sheet.getRow(0) != null) {
this.totalCells = sheet.getRow(0).getPhysicalNumberOfCells();
}
List> userList = new ArrayList>();
// 循环Excel行数
for (int r = 1; r < totalRows; r++) {
Row row = sheet.getRow(r);
if (row == null) {
continue;
}
// 循环Excel的列
Map map = new HashMap();
for (int c = 0; c < this.totalCells; c++) {
Cell cell = row.getCell(c);
if (null != cell) {
if (c == 0) {
// 如果是纯数字,比如你写的是25,cell.getNumericCellValue()获得是25.0,通过截取字符串去掉.0获得25
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
String name = String.valueOf(cell.getNumericCellValue());
map.put("name", name.substring(0, name.length() - 2 > 0 ? name.length() - 2 : 1));// 名称
} else {
map.put("name", cell.getStringCellValue());// 名称
}
} else if (c == 1) {
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
String sex = String.valueOf(cell.getNumericCellValue());
map.put("sex", sex.substring(0, sex.length() - 2 > 0 ? sex.length() - 2 : 1));// 性别
} else {
map.put("sex", cell.getStringCellValue());// 性别
}
} else if (c == 2) {
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
String age = String.valueOf(cell.getNumericCellValue());
map.put("age", age.substring(0, age.length() - 2 > 0 ? age.length() - 2 : 1));// 年龄
} else {
map.put("age", cell.getStringCellValue());// 年龄
}
} else if (c == 3) {
if (cell.getCellType() == HSSFCell.CELL_TYPE_NUMERIC) {
String age = String.valueOf(cell.getNumericCellValue());
map.put("sg", age.substring(0, age.length() - 2 > 0 ? age.length() - 2 : 1));// 身高
} else {
map.put("sg", cell.getStringCellValue());// 身高
}
}

            }

        }
        // 添加到list
        userList.add(map);
    }
    return userList;
}
0

2个回答

应该是报错了。你自己导入前有没有判断是否为空,然后在对数据做处理。看你代码,都没有做判断

0
qq_23126581
玄元复始道生初,守一无穷尽万物 回复duanlianjieQDM: 只要是对数据进行处理了,就要判空。比如你代码里字符串的截取。
10 个月之前 回复
duanlianjieQDM
duanlianjieQDM 我现在是不知道在哪加判断了试了那么多地方都不对
10 个月之前 回复
0
Csdn user default icon
上传中...
上传图片
插入图片
抄袭、复制答案,以达到刷声望分或其他目的的行为,在CSDN问答是严格禁止的,一经发现立刻封号。是时候展现真正的技术了!
其他相关推荐
java导入excel中的空格问题
最近项目需要,首先第一步就是要导入excel的数据 , 待一切代码写好后却发现总有部分数据被忽略。仔细查了原因后才发现java中的trim()没有起作用,于是我看了下trim()的源码。 首先知道空格所对应的ascii码为32 ,源码中显示如果为小于等于 "32"的则被认为是空格给去掉。         但是经过测试发现excel中的空格(其实并不是空格,而是莫名的符号,我们这里姑且称
C#读取导入Excel值为空解决方法
关于在C#中读取导入的Excel一些值为空的解决方法
poi读取excel时判断单元格
public static String toNumeric(HSSFSheet sheet, int i, int colIndex) { Cell cell = sheet.getRow(i).getCell(colIndex); String val = null; switch (cell.getCellType()) { ...
poi 导入 空值处理
poi 导入 空值处理
POI读取Excel文件时,对纯数字单元格的处理
用POI读取Excel文件的时候,可能会遇到这样的问题:Excel文件中某一单元格中的数据为数字,例如12345678910123. 正常读取的话,POI需要用getNumericCellValue()来获得值,这样一来取得的值会是以科学技术法表示的一串数值. 如果我们想要获取单元格中的原样数值的话, 需要做如下处理: [code=&quot;java&quot;]HSSFCell cell = row.getCe...
C# 导入excel 出现空值问题
数据类型会根据第一行数据的格式定义, 如果第一行的数据格式是文本,那么第二行该列也应该为文本; 如果第一行的数据格式是数字,那么第二行该列也应该为数字; 否则导不出去 ...
Excel复制数据到Oracle出现空列问题
从Excel复制数据到Oracle很奇葩的出现空列情况,以前从来没有出现过,这时候就要觉醒肯定是自己操作存在问题。 [img]http://dl2.iteye.com/upload/attachment/0102/3371/92e016e9-2d8f-350a-967a-21b830a5cf94.png[/img] 正确操作步骤是选择表的某一列 [img]http://dl2.i...
使用反射,在Excel导入时判断是否有空行
在用POI进行Excel导入时,发觉有这种情况。 当某一行有格式的时候,POI会认为这行有数据。 用反射的方法可以排除这种数据。 public static boolean isBlankObject(Object model) throws NoSuchMethodException, IllegalAccessException, IllegalArgumentException, I
POI导入EXCLE过程中的处理日期类型单元格的一些小技巧
POI导入EXCLE过程中的处理日期类型单元格的一些小技巧,日期类型判定,及格式化
判断EXCEl版本并存入数据库
选择EXCEL文件,并判断EXCEl版本;然后导入数据库。然后判断导入的数据有无为空以及是否重复。
Java的poi的excel导入怎么验证整型格式的单元格
场景 SpringBoot中使用POI实现Excel导入到数据库(图文教程已实践): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/88660466 需求 在进行导入时,在导入数据库之前需要进行整型格式的验证,确保不会乱输入数据。 判断如果不是整型则将此单元格的背景色设为红色。 实现 //对数量进行验证 ...
vb.net操作excel时,如何判断单元格内容为空
vb.net有时很怪,不同版本,或者不同机器,在操作excel时,判断单元格是否为空时,会出现不同的错误提示。 大多数情况,xlSheet.Cells(1, 1)=""    就可以判断这个单元是否有内容。 但是有时也会有不同的提示。总结不同机器,不同版本,用下面几种来试试单元格是否是空白。 xlSheet.Cells(1, 1)="" xlSheet.Cell
EXCEL导入关于合并单元格的处理类
项目中遇到了关于Sheet页中出现合并单元格的情况,一下代码为解决思路,请参考,谢谢。 /** * TODO fill class info here * * @author * @date 2016-03-23 17:43:18 */ package com.hkrsoft.ysglpt.comm; import java.util.Arrays; import ja
Excel导入时,日期格式的判断 isCellDateFormatted(Cell cell)不成功原因
在文件excel文件上传之后,进行单个单元格的值进行处理以及验证。 对单元格的处理如下: public Object getCellValue(Cell cell) { Object value = null; DecimalFormat df = new DecimalFormat(&quot;0&quot;); // 格式化为整数 SimpleDateFormat sdf = new Simpl...
Java的poi技术遍历Excel时进行空Cell,空row,判断
/** * 导入信息 */ @Override public List add(HttpServletRequest request) { // TODO Auto-generated method stub List num=new ArrayList(); MultipartHttpServletRequest multipartRequest =(MultipartHttpServlet
java poi 导入excel时 读取单元格内容的方法 ,其中包含excel中有函数的读法
public static String getExcelCellValue(Cell cell) { String ret = &quot;&quot;; try { if (cell == null) { ret = &quot;&quot;; } else if (cell.getCellType() == HSSFCell.CELL_TYPE_STRING) { ret = cell.getS...
Excel合并单元格读取
文件:输出:南京_区1_A101_192.168.1.5_南京_区1_A102_192.168.1.6_南京_区2_A101_192.168.1.7_南京_区2_A201_192.168.1.8_南京_区2_A301_192.168.1.9_南京_区2_A401_192.168.1.10_南京_区3_B101_192.168.1.11_南京_区3_B102_192.168.1.12_无锡_区4_A...
导出表格数据时,空指针异常
1.导出数据,空指针 ,框架为jfina 1-1.Java导出数据时,该列在数据库中无值,报空指针异常,给出相应的行, 修改代码如下: Cell c3 = row.createCell(3); c3.setCellStyle(wrap); if (customer.getStr(“cardNo”) == null) { c3.setCellVa
POI处理excel表格中的空数据
1:我在上面有一篇中有使用if判断的方式去处理POI读取到的null的cell,这里介绍一种用try...catch的方法去处理读取到的null的cell的情况,上一篇的链接:https://blog.csdn.net/hujyhfwfh2/article/details/81062120 有兴趣的可以结合一起看... 上一篇有高速大家如何去自动获取excel的行列 这里就不写了 我直接手动传入e...
NPOI 读取空Excel 空单元格报错的问题
NPOI 读取空Excel 空单元格报错的问题问题描述 问题描述 通过NPOI读取Excel时,Excel中存在空的单元格,会导致row.count小于Excel实际列数,出现引用错误;这时需要将cell从索引模式修改到从方法中取值,并判断是否非空。 Irow row=null; for(int i=0;i&lt;row.LastCellNum;i++) { ////string data=r...
POI使用SAX处理大量数据的xlsx格式的Excel文件
    POI在处理Excel方面确实比较方便,但是当Excel数据量比较大的时候,使用POI处理就会导致java.lang.OutOfMemoryError: Java heap space的错误,当有大量数据写入xlsx文件时,POI为我们提供了SXSSFWorkBook类来处理,这个类的处理机制是当内存中的数据条数达到一个极限数量的时候就flush这部分数据,再依次处理余下的数据,这...
java poi读取Excel里面含有公式的单元格的值
public static String getCellValue(Cell cell) { int cellType = cell.getCellType(); String cellValue = ""; switch (cellType) { case HSSFCell.CELL_TYPE_NUMERIC: cellValue = String.valueOf(cell
解决POI读取Excel如何判断行是不是为空
public static boolean isRowEmpty(Row row){ for (int i = row.getFirstCellNum(); i &amp;lt; row.getLastCellNum(); i++) { Cell cell = row.getCell(i); if (cell != null &amp;amp;&amp;...
poi导入excel判断单元格类型及转换
private String getCellValue(HSSFCell cell) { String cellValue = &quot;&quot;; DecimalFormat df = new DecimalFormat(&quot;#&quot;); switch (cell.getCellType()) { case HSSFCell.CELL_TYPE_STRING: cellValue =...
使用PHPExcel判别和格式化Excel中的日期格式
最近,在做一个导入功能,在系统中使用PHPExcel类库,读取上传的Excel文件,然后进行字段映射,最后将Excel内的数据导入到系统中。其中,关于日期格式的导入,使我犯了难。 首先,如何导入日期,因为PHPExcel中日期格式在获取时得到的是数字,并不是日期字符串,于是,网上就有许多代码,用于将Excel中获取的数字转换成PHP使用的Unix Time,其实不必这么麻烦。PHPExc...
POI解析EXCEL跳过空单元格
//可能是刚开始使用POI的缘故,总觉得,POI你个智障,怎么就不知道我想要啥呢。。 今天读取EXCEL的时候,遇到空白单元格,就跳过去。即读取A,下一个直接读取B。 //这就让人很不舒服呀。我可以让它是个空白的单元格,但是我没说我不要啊。谁让你跳过去的。 我的代码如下。 //这种情况下。每遇到空白格,cellIterator.next()跳过空白格,取空白格后面一个有内容的单元格。 ...
Excel数据导入Sql Server,部分数字为Null
在Excel中,我们时常会碰到这样的字段(最常见的就是电话号码),即有纯数字的(如没有带区号的电话号码),又有数字和其它字符混合 (如“区号-电话号码”)的数据,在导入SQLServer过程中,会发现要么纯数字的数据导过去之后变成了NULL,要么就是数字和其它字符混合的数据导过去之后变成了NULL。    我首先想到的就是将这个字段的所有数据在Excel中设置为文本格式,刚才说了本来就是希望导入S...
导入Excel存在空行,导致NullPointerException
1.情景再现: 通过导入Excel文件,导入数据,把这个Excel中的数据处理成一个List,以方便进一步处理,每行数据对应一个List中的元素。但是在处理这个List的时候,报了NullPointerException。 2.排查过程: 下图为该Excel文件的截图,同过ctrl + end,定位到最后Excel文件使用的最后一个单元格,发现其实第三行是一个空行,只是没有数据,但是这一行是...
org.apache.poi 读excel空列跳过的问题
用org.apache.poi的包做excel导入,无意间发现如果excel文件中有空列,空列后面的数据全部读不到。查来查去原来是HSSFRow提供两个方法:getPhysicalNumberOfCells和getLastCellNum。 getPhysicalNumberOfCells 是获取不为空的列个数。 getLastCellNum 是获取最后一个不为空的列是第几个。 同...
解决navicat导入不了.xlsx的Excel格式问题
1、当用navicat导入.xlsx的excel文件时,由于navicat版本问题,会报文件打不开错误需要把文件另存为csv格式,再重新导入,并选择csv格式导入.在选择编码的时候,一定要注意,否则会乱码...
Excel导入大量数据,同时校验Excel中数据以及数据库是否存在重复数据
1.共享数据,减少数据查询 业务需求: 导入房屋信息,房屋信息包括项目编号,楼栋编号,楼层号,房屋号 如果系统中已存在深圳大区,金色家园,1栋,102房屋,Excel中刚好有深圳大区,金色家园,1栋102房屋这条记录,又或者Excel中的信息是这样子的--深圳大区,金色家园,1栋,102,仅仅是名字不一样了,或者信息不对。。。。 思维:将数据库...
SpringBoot+POI实现导入Excel时验证并返回错误Cell标红的文件
场景 SpringBoot中使用POI实现Excel导入到数据库(图文教程已实践): https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/88660466 在Excel导入到数据库后进行格式验证,如果有错误则将错误的Cell标红然后验证完成后 将标红的Excel下载到客户端。 实现 js中发送请求 //解析Excel操...
tp5 phpexcel 导入Excel 获取表格详细数据 包括隐藏小数点
 。。。。。棒棒哒~~~~ 为什么没表情了???  ( ̄▽ ̄)/ 之前做的导入,例如Excel表格展示的是123 但实际人家有小数点的,比如 123.11    就是隐藏了。 我之前的写法 ↓ $obj_PHPExcel = $objReader-&amp;gt;load($file); $excel_array = $obj_PHPExcel-&amp;gt;getsheet(0)-&amp;gt;toA...
Poi 将excel单元格设置为空,使公式引用可用
使用poi生成excle报表时遇到这样的问题,当前单元格没值,在设置当前单元格为空时遇到问题,因为没值的这个单元格在后面的公式中被引用,因为是空导致公式不能解析,但发现excel本身的这种情况却没有问题,遂发现是我在poi设置空值时使用的是:sheet.getRow(i).getCell(j).setCellValue(&quot;&quot;); 该空值不被excel所识别,后发现解决方案如下: 将该单元格类...
java 导入及判断的Excel 使用方法
java+Excel+使用方法,java上传excel 详解,java上传excel 实例分析
POI导入Excel 解析各种格式单元格公共方法整理
(可以解析文本、日期、数值、公式单元格、布尔、空值)1、解析数值型保留两位小数,日期格式为yyyy-mm-dd以及公式型单元格/** * 获取cell中的值 * @param cell * @return */ private String getCellValue(HSSFCell cell) { if (cell != null) { String value =...
Java读取Excel时对cell格式的操作
excel 将信息收集到后,通过数据上传的方式,将数据放到数据库中,而如果在操作的过程中没有把excel的数据类型对应的获取,就会报错,下面写了一个方法将row的每一个cell转换成String类型, int type = cell.getCellType(); //获取cell的类型,分别有 CellType 类型 值 CELL_TYPE_NUMERIC 数值型 0 CE...
报表导入数据时数字精度混乱问题
在进行填报报表时,一般会选择通过Excel表导入大量的数据,因此也会产生一些稀奇古怪的问题。         本次笔者需要导入的是一些数字类型的数据,在Excel中数据如图所示:         导入报表后数据就混乱了,如下图所示:          数据一导进来就混乱了,所以笔者肯定问题出现在Excel表中。一般这种问题是由于在Excel表中设置了数据显示格式,比如实际是1.799
Java-POI读取excel(null的cell也读取输出)
/** * * 读写excel * */ public class RWExcel { private String filePath; private int sheetNum = 0; /** * 构造方法 * */ public RWExcel(String filePath,int sheetNum){ this.filePath = f...
java excel poi导入 过滤空行的方法 判断是否是空行
public static boolean isRowEmpty(Row row) {    for (int c = row.getFirstCellNum(); c        Cell cell = row.getCell(c);        if (cell != null && cell.getCellType() != Cell.CELL_TYPE_
相关热词 c# gdi 占用内存 c#中遍历字典 c#控制台模拟dos c# 斜率 最小二乘法 c#进程延迟 c# mysql完整项目 c# grid 总行数 c# web浏览器插件 c# xml 生成xsd c# 操作sql视图