激进的初号机 2019-08-16 17:14 采纳率: 0%
浏览 150

Java用jxl读入excel时用label发生错误,无法与二维数组共存

填写excel单元格时用到了二维数组,想用两层循环来添加单元格内容,但是发现有二维数组时label就会报错,添加其他数据时并不会报错。代码如下:

       for (int i = 1; i < 32; i++) {
         for(int j = 1; j < 13; j++) {
              String S = date[i-1][j-1];
              labelA = new Label(j,i,S);
              sheetA.addCell(labelA);           
                        }
                    }

图片说明图片说明图片说明

  • 写回答

1条回答 默认 最新

  • java奋斗者 2024-05-12 19:25
    关注

    根据您提供的代码,当您尝试使用jxl库向Excel单元格中填充数据时,在使用二维数组date时出现了问题。在jxl库中,Label对象的构造函数接受的参数是(int column, int row, String contents),即列数、行数和要填充的内容,其中列数和行数是从0开始计数。

    解决方案:

    1. 调整行数与列数:根据jxl库的要求,将行数和列数减一,因为它们是从0开始计数的。修改代码如下:
    for (int i = 0; i < 31; i++) {
        for (int j = 0; j < 12; j++) {
            String content = date[i][j];
            Label label = new Label(j, i, content);
            sheet.addCell(label);
        }
    }
    
    1. 检查数组越界问题:确保date数组的大小与您遍历的行数和列数范围匹配,避免越界访问数组元素导致异常。

    2. 确保单元格不为空:在使用二维数组填充单元格之前,最好先检查要填充的内容是否非空,避免空指针异常。

    通过以上调整,您应该能够在使用jxl库时成功向Excel单元格中使用二维数组填充数据,并避免出现错误。如果问题仍然存在,请进一步检查代码逻辑和数据源是否正确。

    评论

报告相同问题?