Hutool创建新的excel文件以及创建多个sheet

poi 文章 2022-08-22 09:30 0 全屏看文

这个标题,其实只是知道会有同仁也在找这个问题。

其实目前版本里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");
}


结果:

image.png

-EOF-