private Workbook getReadWorkbookType(String filepath) {
FileInputStream inputStream = null;
try {
inputStream = new FileInputStream(filepath);
//xlsx---2007
if (filepath.toLowerCase().endsWith("xlsx")) {
return new XSSFWorkbook(inputStream);
} else if (filepath.toLowerCase().endsWith("xls")) {
//xls---2003
return new HSSFWorkbook(inputStream);
} else {
return null;
}
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
return null;
}
public List<Pair<String, String>> readExcel(String sourceFilePath) {
Workbook workbook = null;
try {
workbook = getReadWorkbookType(sourceFilePath);
List<Pair<String, String>> contents = new ArrayList<>();
Sheet sheet = workbook.getSheetAt(0);
for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
Row row = sheet.getRow(rowNum);
Cell name = row.getCell(1);
Cell idCard = row.getCell(0);
// contents.add(getCellStringVal(cell).trim());
contents.add(Pair.of(getCellStringVal(name).trim(), getCellStringVal(idCard).trim()));
}
return contents;
} finally {
IOUtils.closeQuietly(workbook);
}
}
private String getCellStringVal(Cell cell) {
CellType cellType = cell.getCellTypeEnum();
switch (cellType) {
case NUMERIC:
return cell.getStringCellValue();
case STRING:
return cell.getStringCellValue();
case BOOLEAN:
return String.valueOf(cell.getBooleanCellValue());
case FORMULA:
return cell.getCellFormula();
case BLANK:
return "";
case ERROR:
return String.valueOf(cell.getErrorCellValue());
default:
return StringUtils.EMPTY;
}
}
public void wirteExcel(String targetFilePath, List<JSONObject> result) {
Workbook workbook;
FileOutputStream outputStream;
workbook = getReadWorkbookType(targetFilePath);
Sheet sheet = workbook.createSheet("测试结果");
Row titleRow = sheet.createRow(0);
titleRow.createCell(0).setCellValue("orderNo");
titleRow.createCell(1).setCellValue("handleTime");
Integer rowIndex = result.size();
for (int i = 0; i < rowIndex; i++) {
Row row = sheet.createRow(i + 1);
row.createCell(0).setCellValue(result.get(i).getString("orderNo"));
row.createCell(1).setCellValue(result.get(i).getString("handleTime"));
}
try {
outputStream = new FileOutputStream(targetFilePath);
workbook.write(outputStream);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
网友评论