前言
本篇主要是读取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()); }
总结:这里读取值的方法还不是很完善,读取数字的值,整数会读取出小数点。