EasyExecl导出模板

EasyExecl导出并录入

选用EasyExecl

最近业务中需要录入execl表格,之前项目用的都是poi,查了下资料看,poi容易引起OOM,而easyExecl中可以设定阈值,防止溢出,所以选用了EasyExecl。

引入依赖

  <dependency>
          <groupId>com.alibaba</groupId>
          <artifactId>easyexcel</artifactId>
          <version>2.2.6</version>
  </dependency>

下载模板

这里模板为空,需要模板数据的话自行new对象,调用list.add().

    @PostMapping("/exportTemplate")
    @ApiOperation(value = "下载模板", notes = "下载模板")
    public void exportTemplate(HttpServletResponse response) throws Exception {
        try {

            List<UserData> list = null;
            response.setContentType("application/octet-stream;charset=utf-8");
            response.setCharacterEncoding("utf-8");
            // 这里URLEncoder.encode可以防止中文乱码 当然和easyexcel没有关系
            String fileName = URLEncoder.encode("exportExcel", "UTF-8");
            response.setHeader("Content-disposition", "attachment;filename=" + fileName + ".xlsx");
            EasyExcel.write(response.getOutputStream(), Person.class).sheet("录入模板").doWrite(list);
        } catch (Exception e) {
            // 重置response
            response.reset();
            response.setContentType("application/json");
            response.setCharacterEncoding("utf-8");
            Map<String, String> map = new HashMap<String, String>();
            map.put("status", "failure");
            map.put("message", "下载文件失败" + e.getMessage());
            response.getWriter().println(JSON.toJSONString(map));
        }
    }

模板内容

@Data
public class UserData implements Serializable {

    @ExcelProperty("姓名")
    private String name;

    @ExcelProperty("性别")
    private String sex;

    @ExcelProperty( "年龄")
    private int age;

    @ExcelProperty(“生日日期")
    @DateTimeFormat("yyyy-MM-dd")
    private LocalDate birth;
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值