这个问题是转换的问题,起初我是字符串转成int,但是报转换错误,通过上网查,这个问题也得以解决。这个问题分很多种情况
原因是:在调用StringUtils.split(),Integer.parseInt(),Long.parseLong()等方法时,不管传入的参数的值是什么,都能进入不为null或“”的判断中,然后就运行执行下面的代码,就可能出现 java.lang.NumberFormatException: For input string: "null"的异常。当传入的值为空,就不能被StringUtils.split()切割,也不能被Integer.parseInt(),Long.parseLong()等方法调用,所以会报错。
所以在传值的过程中得先给判空,上代码:
错误代码:
// 循环Excel的列
for (int c = 0; c< this.totalCells; c++) {
Cell cell = row.getCell(c);
if (null != cell) {
if (c == 0) {
workerModel.setArticlename(String.valueOf(getCellValue(cell)));
} else if (c == 1) {
if(String.valueOf(getCellValue(cell)).equals("")) {
}else {
workerModel.setOnlyNumber(String.valueOf(getCellValue(cell)));
}
} else if (c == 2) {
workerModel.setUnit(String.valueOf(getCellValue(cell)));
} else if (c == 3) {
workerModel.setArticlespec(String.valueOf(getCellValue(cell)));
} else if (c == 4) {
workerModel.setCatelog(String.valueOf(getCellValue(cell)));
} else if (c == 5) {
workerModel.setPrewarning(Integer.valueOf(String.valueOf(getCellValue(cell))));
} else if (c == 6) {
workerModel.setRemark(String.valueOf(getCellValue(cell)));
}else if (c == 7){
workerModel.setUpperLimitA(Integer.valueOf(String.valueOf(getCellValue(cell))));
}else if (c == 8){
workerModel.setUpperLimitB(Integer.valueOf(String.valueOf(getCellValue(cell))));
}else if (c == 9){
workerModel.setUpperLimitC(Integer.valueOf(String.valueOf(getCellValue(cell))));
}else if (c == 10){
workerModel.setUpperLimitD(Integer.valueOf(String.valueOf(getCellValue(cell))));
}else if (c == 11){
workerModel.setUpperLimitE(Integer.valueOf(String.valueOf(getCellValue(cell))));
}else if (c == 12){
workerModel.setUpperLimitF(Integer.valueOf(String.valueOf(getCellValue(cell))));
}else if (c == 13){
workerModel.setUpperLimitG(Integer.valueOf(String.valueOf(getCellValue(cell))));
}else if (c == 14){
workerModel.setUpperLimitH(Integer.valueOf(String.valueOf(getCellValue(cell))));
}
}
}
修改后的代码:
// 循环Excel的列
for (int c = 0; c< this.totalCells; c++) {
Cell cell = row.getCell(c);
if (null != cell) {
if (c == 0) {
workerModel.setArticlename(String.valueOf(getCellValue(cell)));
} else if (c == 1) {
if(!String.valueOf(getCellValue(cell)).equals("")) {
workerModel.setOnlyNumber(String.valueOf(getCellValue(cell)));
}
} else if (c == 2) {
workerModel.setUnit(String.valueOf(getCellValue(cell)));
} else if (c == 3) {
workerModel.setArticlespec(String.valueOf(getCellValue(cell)));
} else if (c == 4) {
workerModel.setCatelog(String.valueOf(getCellValue(cell)));
} else if (c == 5) {
if (!String.valueOf(getCellValue(cell)).equals("")){
workerModel.setPrewarning(Integer.valueOf(String.valueOf(getCellValue(cell))));
}
} else if (c == 6) {
workerModel.setRemark(String.valueOf(getCellValue(cell)));
}else if (c == 7){
if (!String.valueOf(getCellValue(cell)).equals("")){
workerModel.setUpperLimitA(Integer.valueOf(String.valueOf(getCellValue(cell)).trim()));
}
}else if (c == 8){
if (!String.valueOf(getCellValue(cell)).equals("")){
workerModel.setUpperLimitB(Integer.valueOf(String.valueOf(getCellValue(cell)).trim()));
}
}else if (c == 9){
if (!String.valueOf(getCellValue(cell)).equals("")){
workerModel.setUpperLimitC(Integer.valueOf(String.valueOf(getCellValue(cell)).trim()));
}
}else if (c == 10){
if (!String.valueOf(getCellValue(cell)).equals("")){
workerModel.setUpperLimitD(Integer.valueOf(String.valueOf(getCellValue(cell)).trim()));
}
}else if (c == 11){
if (!String.valueOf(getCellValue(cell)).equals("")){
workerModel.setUpperLimitE(Integer.valueOf(String.valueOf(getCellValue(cell)).trim()));
}
}else if (c == 12){
if (!String.valueOf(getCellValue(cell)).equals("")){
workerModel.setUpperLimitF(Integer.valueOf(String.valueOf(getCellValue(cell)).trim()));
}
}else if (c == 13){
if (!String.valueOf(getCellValue(cell)).equals("")){
workerModel.setUpperLimitG(Integer.valueOf(String.valueOf(getCellValue(cell)).trim()));
}
}else if (c == 14){
if (!String.valueOf(getCellValue(cell)).equals("")){
workerModel.setUpperLimitH(Integer.valueOf(String.valueOf(getCellValue(cell)).trim()));
}
}
}
}