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