前言
本篇主要是读取Excel文档,通过遍历行和列读取内容。其中单元格的内容类型,需要单独判断读取。
实例
public static void main(String[] args) throws Exception
{
//输入流
InputStream is = new FileInputStream("f:\\poi\\ffff.xls");
//文件系统
POIFSFileSystem fs = new POIFSFileSystem(is);
//定义工作簿
HSSFWorkbook wb = new HSSFWorkbook(fs);
//获取第一个sheet页
HSSFSheet hssfSheet = wb.getSheetAt(0);
if(hssfSheet == null){
return;
}
//遍历行row
for(int rowNum = 0; rowNum<=hssfSheet.getLastRowNum();rowNum++){
//获取每一行
HSSFRow row = hssfSheet.getRow(rowNum);
if(row == null){
continue;
}
//遍历列cell
for(int cellNum = 0; cellNum<=row.getLastCellNum();cellNum++){
//获取每一列
HSSFCell cell = row.getCell(cellNum);
if(cell == null){
continue;
}
System.out.print(" "+getValue(cell));
}
System.out.println();
}
}
/**
* 不同类型对应不同的取值范围
* @param cell
* @return
*/
private static String getValue(HSSFCell cell){
if(cell.getCellType()==HSSFCell.CELL_TYPE_BOOLEAN){
return String.valueOf(cell.getBooleanCellValue());
}else if(cell.getCellType()==HSSFCell.CELL_TYPE_NUMERIC){
return String.valueOf(cell.getNumericCellValue());
}
return String.valueOf(cell.getStringCellValue());
}
总结:这里读取值的方法还不是很完善,读取数字的值,整数会读取出小数点。