hutool实现excel的导出,包括级联下拉

本文介绍了如何利用Hutool库来实现Excel的导出功能,特别强调了包含级联下拉的设置。通过查看pom.xml配置,ImportController的代码,以及ExcelUtil工具类的详细实现,展示了最终导出的文件效果,其中还包含了设置Sheet页面为只读的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

废话不多说,直接上代码
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 = 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值