这个标题,其实只是知道会有同仁也在找这个问题。
其实目前版本里hutool是没有直接创建sheet的代码的,当然也许是我没找到。API里也没搜到。
最终还是回到了POI的原本方法里(hutool也是基于poi做了部分封装)。
private static void createNewData(List<List<String>> datas) throws IOException { // 定义一个新的2007以上版本的excel 如果是要2003版本的需要试用XSSFWorkbook Workbook wb = new XSSFWorkbook(); String handlerPath = excelPath + ".处理后的.xlsx"; Sheet sheet = wb.createSheet("处理后的数据"); // 创建第一个Sheet页 int rowIndex = 0; for (List<String> rowData : datas) { Row row = sheet.createRow(rowIndex); // 创建一个行 int cellIndex = 0; Cell cell = row.createCell(0); // 创建一个单元格 第1列 cell.setCellValue(rowData.get(0)); Cell cellReceiveNos = row.createCell(1); // 创建一个单元格 第1列 String receiveNo = rowData.get(1); cellReceiveNos.setCellValue(rowData.get(1)); Cell cellItemNumId = row.createCell(2); // 创建一个单元格 第1列 String itemNumId =Double.valueOf(rowData.get(2)).toString(); cellItemNumId.setCellValue(rowData.get(2)); String res = "没有日志"; Cell cellRes = row.createCell(3); cellRes.setCellValue(res); rowIndex++; } int logRowIndex = 0; Sheet logSheet = wb.createSheet("查询日志"); for (List<String> rowData : datas) { //第二个sheet 业务处理 } int logRebateIndex = 0; Sheet rebateSheet = wb.createSheet("查询返利"); for (List<String> rowData : datas) { //第三个个sheet 业务处理 logRebateIndex++; } FileOutputStream fileOut = new FileOutputStream(handlerPath); wb.write(fileOut); fileOut.close(); wb.close(); System.out.println("OK"); }
结果: