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

 

posted on 2010-12-01 21:33  大空翼  阅读(1507)  评论(0编辑  收藏  举报

导航