hutool excel操作

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/qq_24615069/article/details/82080166

1.导入依赖

<dependency>
    <groupId>cn.hutool</groupId>
    <artifactId>hutool-all</artifactId>
    <version>4.0.5</version>
    </dependency>
<!--推荐引入poi-ooxml,这个包会自动关联引入poi包,且可以很好的支持Office2007+的文档格式,高于3.17-->
<dependency>
    <groupId>org.apache.poi</groupId>
    <artifactId>poi-ooxml</artifactId>
    <version>3.17</version>
</dependency>
<!--如果需要使用Sax方式读取Excel,需要引入以下依赖,高于2.11.0-->
<dependency>
    <groupId>xerces</groupId>
    <artifactId>xercesImpl</artifactId>
    <version>2.11.0</version>
</dependency>

2.导出操作

    /**
     * 导出用户,一个controller写完,方便展示
     * 使用的mybatis-generator简化CRUD
     * 防止引入的包错了,这里指出来
     * import cn.hutool.core.collection.CollUtil;
     * import cn.hutool.poi.excel.ExcelUtil;
     * import cn.hutool.poi.excel.ExcelWriter;
     */
    @GetMapping(value = "/exportExcel")
    public Result<Object> exportExcel() {
        //从数据库拿出要存放excel表的数据,并记录数据量
        TUserExample example = new TUserExample();
        example.createCriteria().andIsDeleteEqualTo("-1");
        List<TUser> users = tUserMapper.selectByExample(example);
        int count = tUserMapper.countByExample(example);
        //创建存放excel每列的excel表
        List<List<String>> table = new ArrayList<>();
        //设置excel表的标题列
        String[] title = new String[]{"用户名", "姓名", "手机号", "办公电话", "证件类型", "证件号", "状态", "备注"};
        List<String> titleRow = CollUtil.newArrayList(title);
        table.add(titleRow);
        //设置每列的属性值,count为一共有多少列,及数据库表查询出来的数据量
        for (int i = 0; i < count; i++) {
            TUser user = users.get(i);
            //每列属性值,要与title对应存放
            List<String> row = CollUtil.newArrayList(user.getNickname(), user.getRealname(), user.getPhone(), user.getOfficePhone(),
                    user.getCertificateType(), user.getCertificateCode(), user.getState(), user.getNotes());
            //将每列放入excel表中
            table.add(row);
        }
        CollUtil.newArrayList(table);
        //通过工具类创建writer
        ExcelWriter writer = ExcelUtil.getWriter("d:/user.xlsx");
        //一次性写出内容
        writer.write(table);
        //关闭writer,释放内存
        writer.close();
        return new ResultUtil<>().setData(null, "导出excel成功");
    }

猜你喜欢

转载自blog.csdn.net/qq_24615069/article/details/82080166