hutool导出数据 生成excel文件

1.首先引入hutool依赖

2.使用hutool工具 将数据库查出的数据生成excel文件 通过流读写成二进制数据返回前端

@PostMapping("/downloadFileData")
@ResponseBody
public ResponseResult<byte[]> downloadFileData() {
    ResponseResult<byte[]> result = new ResponseResult<>();
    List<Vacation> vacationList = vacationService.findVacationAll();
    File file = new File("D:\\excel\\vacationList.xlsx");
    ExcelWriter writer = ExcelUtil.getWriter(file);

    writer.addHeaderAlias("vacationId", "请假条编号");
    writer.addHeaderAlias("empId", "请假员工编号");
    writer.addHeaderAlias("vacationTypeId", "请假类型编号");
    writer.addHeaderAlias("vacationStartTime", "开始时间");
    writer.addHeaderAlias("vacationEndTime", "结束时间");
    writer.addHeaderAlias("remark", "备注");
    writer.addHeaderAlias("deptId", "员工所在部门编号");
    writer.addHeaderAlias("cellPhone", "手机号码");
    writer.addHeaderAlias("vacationStatusId", "请假条审批状态编号");
    writer.addHeaderAlias("pictureUrl", "照片文件名称");

    writer.write(vacationList, true);
    writer.close();
    try {
        InputStream inputStream = new FileInputStream(file);
        ByteArrayOutputStream outputStream = new ByteArrayOutputStream();
        byte[] b = new byte[1024];

        Integer length = 0;
        while (-1 != (length = inputStream.read(b))) {
            outputStream.write(b, 0, length);
        }

        byte[] byteArray = null;
        byteArray = outputStream.toByteArray();
        outputStream.close();
        inputStream.close();
        System.err.println(byteArray);
        result.setCode(200);
        result.setMsg("导出成功");
        result.setData(byteArray);
    } catch (IOException e) {
        result.setCode(500);
        result.setMsg("系统异常");
        e.printStackTrace();
        throw new RuntimeException(e);
    }
    return result;
}
  • 8
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值