使用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 "";
}