初学easyPOI

先是依赖问题,正常的就是导入三个依赖

<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-base</artifactId>
    <version>4.1.0</version>
</dependency>
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-web</artifactId>
    <version>4.1.0</version>
</dependency>
<dependency>
    <groupId>cn.afterturn</groupId>
    <artifactId>easypoi-annotation</artifactId>
    <version>4.1.0</version>
</dependency>

 单是普通导入就只需要在测试包中创建一个测试类就可以了

/**
     * 无需创建java模板,直接copy文件,可以修改传入参数,
     * @throws Exception
     */
    @Test
    public void fe_map() throws Exception {
        //获取要导出的excel指定模版地址
        TemplateExportParams params = new TemplateExportParams(
                "C:/Users/SeaLoong/Desktop/21.7.23日报表.xls");
//        TemplateExportParams params = new TemplateExportParams(
//                "C:/Users/SeaLoong/Desktop/测试.xlsx");
        Map<String, Object> map = new HashMap<String, Object>();
        //如有需要更改的则将参数写入到表格中进行添加
        map.put("date", "2021年7月23日");

        //在这些参数下遍历要传入的参数数据,同时若是excel表格中所写的参数要与下面的listMap相关,并且其缩写最好省略
        List<Map<String, String>> listMap = new ArrayList<Map<String, String>>();
        for (int i = 0; i < 4; i++) {
            Map<String, String> lm = new HashMap<String, String>();
//            lm.put("id","12334"+i);
//            lm.put("age","年龄");
//            lm.put("cycle","周期");
//            lm.put("identity","身份");
//            lm.put("state","状态");
            lm.put("id","项目");
            lm.put("project","000"+i);
            listMap.add(lm);
        }
        map.put("listMap", listMap);
        //修改sheet表的名称
        //params.setSheetName("重工财司");

        Workbook workbook = ExcelExportUtil.exportExcel(params, map);
        //文件地址,判断是否存在,不存在就创建
        File savefile = new File("D:/excel/");
        if (!savefile.exists()) {
            savefile.mkdirs();
        }
        //设置Excel的文件地址及文件名
        FileOutputStream fos = new FileOutputStream("D:/excel/21.7.23日报表.xls");
//        FileOutputStream fos = new FileOutputStream("D:/excel/测试.xlsx");
        workbook.write(fos);
        fos.close();
    }

与这个测试类对应的Excel表需要对应的则细节一点, 首先模板表格的参数,官网上说过多个参数输入的话可使用{{符号 fe 冒号 名称 t t.id}}其中,这个t是默认的。初入手时,没有进行修改,导致表格始终赋值不上,经查询发现是带着t的问题(具体为什么没有说明)。

还有遍历传入多个值时,表格要看好是否格式正确,是否有些表格的文本格式进行了修改,若是进行了修改可能在导出时会出现Excel模板错误报空指针的错误.

表格的参数为:

 其listMap对应java代码中的map.put("listMap",listMap)中的"listMap"

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值