废话不多说,直接上代码
1.pom.xml
<dependency>
<groupId>cn.hutool</groupId>
<artifactId>hutool-all</artifactId>
<version>5.7.21</version>
</dependency>
2.ImportController
@ApiOperation(value = "excel导出")
@GetMapping("/export/test")
private static void downloadExcel(HttpServletResponse response) {
List<Map<String,Object>> resultListP = new ArrayList<>();
//第一个sheet页值
Map<String,Object> sheetData1 = new HashMap<>();
sheetData1.put("姓名","张三");
sheetData1.put("年龄","20");
resultListP.add(sheetData1);
//第二个sheet页值
List<Map<String,Object>> resultListE = new ArrayList<>();
Map<String,Object> sheetData2 = new HashMap<>();
sheetData2.put("下拉字段1","字段1的值1");
sheetData2.put("下拉字段2","字段2的值1");
Map<String,Object> sheetData3 = new HashMap<>();
sheetData3.put("下拉字段1","字段1的值1");
sheetData3.put("下拉字段2","字段2的值2");
resultListE.add(sheetData2);
resultListE.add(sheetData3);
ExcelWriter writer = new ExcelWriter(true,"数据sheet");
writer.write(resultListP,true);
//设置所有列为自动宽度,不考虑合并单元格
writer.autoSizeColumnAll();
writer.setSheet("字段sheet");
writer.write(resultListE,true);
List<Sheet> sheets = writer.getSheets();
Sheet sheet1 = sheets.get(0);
//设置为不可编辑
sheet1.protectSheet("数据sheet");
//将第二个sheet隐藏
Sheet sheet2 = sheets.get(1);
Workbook workbook = writer.getWorkbook();
workbook.setSheetHidden(workbook.getSheetIndex(sheet2), true);
//设置所有列为自动宽度,不考虑合并单元格
writer.autoSizeColumnAll();
//下拉框sheet页
writer.setSheet("下拉框sheet");
List<String> strings =