67,513
社区成员
发帖
与我相关
我的任务
分享
public static Map<String, Object> readExcelFile(Sheet sheet) {
Map<String, Object> map = new LinkedHashMap<String, Object>();
if(sheet == null || sheet.getLastRowNum() == 0) {
return map;
}
else {
map.put("sheetName", sheet.getSheetName());
}
for(int rowIndex = 0; rowIndex <= sheet.getLastRowNum(); rowIndex++) {
Row row = sheet.getRow(rowIndex);
if(row == null || row.getLastCellNum() == 0) {
continue;
}
for(int cellIndex = 0; cellIndex < row.getLastCellNum(); cellIndex++) {
Cell cell = row.getCell(cellIndex);
cell = cell == null ? row.createCell(cellIndex) : cell;
String val = "";
switch(cell.getCellType()) {
case HSSFCell.CELL_TYPE_STRING:
val = cell.getStringCellValue().trim();
break;
case HSSFCell.CELL_TYPE_NUMERIC:
if(HSSFDateUtil.isCellDateFormatted(cell)) {
SimpleDateFormat format =
new SimpleDateFormat("yyyy-MM-dd");
val = format.format(
new Date(cell.getDateCellValue().getTime()));
}
else {
Double d = cell.getNumericCellValue();
//DecimalFormat df = new DecimalFormat();
//df.applyPattern("0");
val = String.valueOf(d);
}
break;
}
}
if(bean.getKey() != null) {
map.put(bean.getKey(), bean);
}
}
return map;
}
public static Map<String, Object> readExcel(File excel) throws Exception {
InputStream in = new FileInputStream(excel);
Workbook book = null;
try {
book = new HSSFWorkbook(in);
}
catch(OutOfMemoryError e) {
String msg = "The file " + excel.getName()
+ " data is error, please delete invalid data!";
if(log.isDebugEnabled()) {
log.debug(msg);
}
throw new Exception(msg);
}
catch(OfficeXmlFileException e) {
in = new FileInputStream(excel);
book = new XSSFWorkbook(in);
//throw new Exception(e.getMessage());
}
if(book == null || book.getNumberOfSheets() == 0) {
return null;
}
for(int sheetNum = 0; sheetNum < book.getNumberOfSheets(); sheetNum++) {
Sheet sheet = book.getSheetAt(sheetNum);
if(sheet == null || sheet.getLastRowNum() == 0) {
return null;
}
return readExcelFile(sheet);
}
return null;
}