最近在做java批量导入时经常出现这个异常,先上图
java.lang.ArrayIndexOutOfBoundsException: 9
根据这个数组下标越界异常百度上搜索结果一大堆,但没有适合自己的解决办法,只能是自己慢慢摸索了,不过终于被我找到适合自己的解决办法了,上图
public Map<String, String> readNextRowFromExcel(int rowIndex)
throws Exception {
Map<String, String> map = new HashMap<String, String>();
Row row = null;
if ("xls".equals(isXlsOrXlsx)) {
row = hSSFSheet.getRow(rowIndex);
} else if ("xlsx".equals(isXlsOrXlsx)) {
row = xSSFSheet.getRow(rowIndex);
}
for (int j = row.getFirstCellNum(); j < row.getLastCellNum(); j++) {
map.put(title[j], getCell(row.getCell(j)));
}
return map;
}
是找到excel中有数据的最大列数,但是如果建表格的时候不注意,在超出其他列的地方输入了数据,那么就会报上面的越界异常,解决办法就是上面的row.getLastCellNum()
row.getLastCellNum()
改成自己要导入的列数就可以了 ,比如我有9列数据,那面上面只需要改成9就可以了。