jxl导入excel数据时的问题

        今天改的bug让我头疼了一下午,是将excel里面的模板重新修改,然后对里面的数据重新排序了一下,将必填的数据放到前面,非必填的数据放到后面。

        本以为是件很轻松的事,结果把我折腾死了。因为做导入的时候,报了一个数组越界错误,调试了断点之后,才发现sheet.getRow(i)的长度并不是确定,而是根据当前行的以最后一个不为空的单元格来确定的,这样一来,我后面非必填的数据每一个都要做判断。最后项目经理告诉我说用for+switch语句来解决。

        代码简单如下:      

  for(int j=0;j<sheet.getRow(i).length;j++){

       swicth(j){

          case 0:(java代码);

                       break;

          case 1: (java代码);

                       break;

          ...

}



}



   

      这样做,绝对要比多个if判断好,代码敲得多了,好像发现switch真的用得很少,但这种情况下无疑是一个比较好的选择。

      刚上网查资料时,发现一个更好的写法:

      

for (int i = 0; i <rowCount; i++) { 

    for (int j = 0; j <columnCount; j++) { 

        //注意,这里的两个参数,第一个是表示列的,第二才表示行 

        cell=sheet.getCell(j, i);

      通过j和i,可以确定位置,这样根本不用考虑数组越界的问题了,这个列数,我只需要取到第一行的列数就行了,因为第一行只是对数据的说明而已,类似表里面的字段。     

 

你可能感兴趣的:(Excel)