天天看点

poi读取xlsx和xls

使用poi读取,jxl对于excel2007不支持

1. 读取xlsx 数据

    InputStream fs 

   XSSFWorkbook workbook = new XSSFWorkbook(fs);

   XSSFSheet st = workbook.getSheetAt(0);

   for (int rowNumOfSheet = 1; rowNumOfSheet <= st.getLastRowNum(); rowNumOfSheet++) {

    if (null != st.getRow(rowNumOfSheet)) {

     XSSFRow aRow = st.getRow(rowNumOfSheet); // 获得一个行

     int cols = 0;

     CarData carData = new CarData();

     carData.setProvince(getCellXlsx(aRow.getCell(++cols)));

    }

  }

public String getCellXlsx(XSSFCell cell) {

  if (cell == null)

   return "";

  switch (cell.getCellType()) {

  case XSSFCell.CELL_TYPE_NUMERIC:

   if (HSSFDateUtil.isCellDateFormatted(cell)) {

    Date d = cell.getDateCellValue();

    return formater.format(d);

   } else {

    return df.format(cell.getNumericCellValue());

   }

  case XSSFCell.CELL_TYPE_STRING:

   return cell.getStringCellValue();

  case XSSFCell.CELL_TYPE_FORMULA:

   return cell.getCellFormula();

  case XSSFCell.CELL_TYPE_BLANK:

   return "";

  case XSSFCell.CELL_TYPE_BOOLEAN:

   return cell.getBooleanCellValue() + "";

  case XSSFCell.CELL_TYPE_ERROR:

   return cell.getErrorCellValue() + "";

  }

  return "";

 }

2.读取xls 数据

   HSSFWorkbook workbook = new HSSFWorkbook(fs);

   HSSFSheet st = workbook.getSheetAt(0);

   for (int rowNumOfSheet = 1; rowNumOfSheet <= st.getLastRowNum(); rowNumOfSheet++) {

    if (null != st.getRow(rowNumOfSheet)) {

     HSSFRow aRow = st.getRow(rowNumOfSheet); // 获得一个行

     int cols = 0;

     CarData carData = new CarData();

     carData.setProvince(getCell(aRow.getCell(++cols)));

    }

   }

public String getCell(HSSFCell cell) {

  if (cell == null)

   return "";

  switch (cell.getCellType()) {

  case HSSFCell.CELL_TYPE_NUMERIC:

   if (HSSFDateUtil.isCellDateFormatted(cell)) {

    Date d = cell.getDateCellValue();

    return formater.format(d);

   } else {

    return df.format(cell.getNumericCellValue());

   }

  case HSSFCell.CELL_TYPE_STRING:

   return cell.getStringCellValue();

  case HSSFCell.CELL_TYPE_FORMULA:

   return cell.getCellFormula();

  case HSSFCell.CELL_TYPE_BLANK:

   return "";

  case HSSFCell.CELL_TYPE_BOOLEAN:

   return cell.getBooleanCellValue() + "";

  case HSSFCell.CELL_TYPE_ERROR:

   return cell.getErrorCellValue() + "";

  }

  return "";

 }