List<Map<String,String>> listData = new ArrayList<Map<String,String>>();
// 创建返回对象,把每行中的值作为一个数组,所有行作为一个集合返回
List<String[]> list = new ArrayList<String[]>();
if (StringTool.isNotNullAndBlank(fileFileName)) {
// 获得Workbook工作薄对象
Workbook workbook = ExcelData.getWorkBook(file[0], fileFileName);
if (workbook != null) {
for (int sheetNum = 0; sheetNum < workbook.getNumberOfSheets(); sheetNum++) {
// 获得当前sheet工作表
Sheet sheet = workbook.getSheetAt(sheetNum);
if (sheet == null) {
continue;
}
//获取当前sheet的名称
String sheetName = sheet.getSheetName();//sheet名称
// 获得当前sheet的开始行
int firstRowNum = sheet.getFirstRowNum();
// 获得当前sheet的结束行
int lastRowNum = sheet.getLastRowNum();
// 循环除了第一行的所有行
for (int rowNum = firstRowNum + 1; rowNum <= lastRowNum; rowNum++) {
// 获得当前行
Row row = sheet.getRow(rowNum);
cells[cellNum]=dogetCell(cell);
}
list.add(cells);
}
}
}
//poi的cell格式转换
private static String dogetCell(Cell cell) {
String temp = "";
if (cell == null) {
return temp;
}
switch (cell.getCellType()) {
case Cell.CELL_TYPE_STRING:
return cell.getStringCellValue().toString();
case Cell.CELL_TYPE_NUMERIC:
if (DateUtil.isCellDateFormatted(cell)) {
Date date = cell.getDateCellValue();
DateFormat df = new SimpleDateFormat("yyyy-MM-dd");
temp = df.format(date);
} else {
// return String.valueOf(cell.getNumericCellValue());DecimalFormat df = new DecimalFormat("0");
DecimalFormat df = new DecimalFormat("0.00");
String number = df.format(cell.getNumericCellValue());
//BigDecimal big=new BigDecimal(cell.getNumericCellValue());
temp = number.toString();
//解决1234.0 去掉后面的.0
if(null != temp && !"".equals(temp.trim())){
String[] item = temp.split("[.]");
if(1<item.length&&"00".equals(item[1])){
temp=item[0];
}
}
return temp;
}
case Cell.CELL_TYPE_FORMULA:
//return String.valueOf(cell.getNumericCellValue());
//公式值显示
if (cell.getCellType() == Cell.CELL_TYPE_FORMULA) {
return String.valueOf(cell.getNumericCellValue());
}else{
return ExcelData.getCellValue(cell);
}
default:
return ExcelData.getCellValue(cell);
}
}