当前位置: 代码迷 >> Java Web开发 >> poi读取excel老是少读一行是什么个情况
  详细解决方案

poi读取excel老是少读一行是什么个情况

热度:135   发布时间:2016-04-16 22:00:26.0
poi读取excel总是少读一行是什么个情况?

package com.excel;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.util.ArrayList;
import java.util.List;

import org.apache.poi.hssf.usermodel.HSSFCell;
import org.apache.poi.hssf.usermodel.HSSFRow;
import org.apache.poi.hssf.usermodel.HSSFSheet;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

public class ReadExcel {
private static String path="D:/excel.xls";
public static void main(String[] args) throws Exception {
List<String>  strUser=new ArrayList<String>();
File file=new File(path);
FileInputStream fs=new FileInputStream(file);
HSSFWorkbook wb=new HSSFWorkbook(fs);
HSSFSheet sheet=wb.getSheet("新生记录");
int lastRow=sheet.getLastRowNum();
StringBuffer values=null;
for(int i=1;i<lastRow+1;i++){
HSSFRow row=sheet.getRow(i);
short cellNum=row.getLastCellNum();
values=new StringBuffer();
for(int j=0;j<cellNum;j++){
HSSFCell cell=row.getCell(j);
if(j==0||j==2){
cell.setCellType(HSSFCell.CELL_TYPE_STRING);
}
System.out.println(cell.getStringCellValue());
values.append(cell.getStringCellValue()+",");
}
values.delete(values.length()-1, values.length());
strUser.add(values.toString());
}
for(int i=0;i<strUser.size();i++){
String[] user=strUser.get(i).split(",");
System.out.println(new User(Integer.valueOf(user[0]),user[1],Integer.valueOf(user[2])));
}
}
}



excel截图   图片上传不上来哦。。

编号   姓名   年龄
1           张三    12
2           李四    15
3           王五    18

这四行都有边框  和底色,还设置了字体为楷体。。

现在问题是   这个row.getLastCellNum();   得到的总是三行   应该四行才对哦。。
------解决方案--------------------
i<lastRow+1 不等价于i<=lastRow
  相关解决方案