easypoi加入特殊符号

文章介绍了利用Easypoi库在Java中导出Excel模板时处理特殊符号(如Unicode表示的勾号、叉号)的方法,以及如何根据模板控制复选框的选中状态。作者提到了两种方式:一是通过Unicode码表示特殊符号,二是使用可控的Excel复选框控件。
摘要由CSDN通过智能技术生成

想要效果

利用easypoi模板导出

excel模板

代码

public void test() {
        TemplateExportParams params = new TemplateExportParams("C:\\Desktop\\模板.xlsx");
        Map<String, Object> map = new HashMap<>();
        map.put("name", "张三");
        map.put("addr", "西湖区");
        map.put("student", "\u2611");//利用打勾的Unicode码(Hex)
        map.put("in", "☑");//直接插入符号
        map.put("out", "□");
        String excelPath = "C:\\Desktop\\导出特殊符号测试.xlsx";
        Workbook workbook = ExcelExportUtil.exportExcel(params, map);
        try {
            OutputStream out = Files.newOutputStream(Paths.get(excelPath));
            workbook.write(out);
            out.close();
            workbook.close();
        } catch (IOException e) {
            e.printStackTrace();
            log.error(excelPath + "保存失败");
        }
    }

得到效果

总结

导出特殊符号的两种方式:

利用Unicode码

Unicode码对应的勾号、叉号、圈号、点号等特殊符号_编程学问网

直接插入特殊符号

Unicode码对应的勾号、叉号、圈号、点号等特殊符号

       通过这两种方式导出的excel的打勾只是一个特殊符号,不是可以选中或不选中的复选框,参考了别人的文章之后再改进。

参考:使用easypoi和原生poi接口实现导出excel时控制复选框选中或不选中_java 根据模板导出excel时,如何根据后台数据设置复选框的勾选-CSDN博客

可选复选框

模板

使用了excel-开发工具-插入-复选框控件,通过设置复选框格式可以选择控制是否选中的格子

代码

public void test() {
        TemplateExportParams params = new TemplateExportParams("C:\\Desktop\\可控复选框模板.xlsx");
        Map<String, Object> map = new HashMap<>();
        map.put("name", "张三");
        map.put("addr", "西湖区");
        String excelPath = "C:\\Desktop\\导出可控复选框.xlsx";
        Workbook workbook = ExcelExportUtil.exportExcel(params, map);
        Sheet sheetAt = workbook.getSheetAt(0);
        //控制'学生'复选框:选中-true,未选-false
        Row row1 = sheetAt.getRow(6);
        Cell cell1 = row1.getCell(4);
        cell1.setCellValue(true);
        row1.setZeroHeight(true);//隐藏复选框的关联行
        //控制'在职'复选框:选中-true,未选-false
        Row row2 = sheetAt.getRow(7);
        Cell cell2 = row2.getCell(4);
        cell2.setCellValue(true);
        row2.setZeroHeight(true);//隐藏复选框的关联行
        //隐藏'离职'关联行
        Row row3 = sheetAt.getRow(8);
        row3.setZeroHeight(true);
        try {
            OutputStream out = Files.newOutputStream(Paths.get(excelPath));
            workbook.write(out);
            out.close();
            workbook.close();
        } catch (IOException e) {
            e.printStackTrace();
            log.error(excelPath + "保存失败");
        }
    }

效果

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值