java后端使用EasyExcel实现导出excel操作

2 篇文章 0 订阅
2 篇文章 0 订阅

第一步:引入依赖

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

第二部:创建与excel中第一行字段对应的实体类

@Data
@AllArgsConstructor
@NoArgsConstructor
@ToString
public class ModelOfExcel {

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

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

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

其中@Data,@AllArgsConstructor,@NoArgsConstructor,@ToString 代表有参构造,无参构造,getter和setter等,lombok依赖特性。

@ExcelProperty表示指定生成excel后的每列的列名称。稍后截图看效果。

第三步:编写业务逻辑接口测试。

@RestController
@Api(tags = "测试excel导出")
@RequestMapping("testexcel")
public class ExcelController {

    @GetMapping("getExcel")
    @ApiOperation(value = "导出excel")
    @ResponseBody
    public void getExcel(HttpServletResponse response) throws IOException {
        List<ModelOfExcel> list=new ArrayList<>();
        list.add(new ModelOfExcel("张三",21,"男"));
        list.add(new ModelOfExcel("李四",32,"男"));
        list.add(new ModelOfExcel("小翠",20,"女"));
        //设置返回输出流的格式
        response.setContentType("application/vnd.ms-excel");
        //设置响应头部信息,格式为附件,文件名为expert.xlsx
        response.setHeader("Content-Disposition","attachment; filename=" + "testexcel.xlsx");
        writeExcel(response,list);
    }

    public static void writeExcel(HttpServletResponse response, List<ModelOfExcel> list) throws IOException {
        ExcelWriter excelWriter= EasyExcel.write(response.getOutputStream()).build();
        //sheet的含义相当于一张工作表
        WriteSheet sheet=EasyExcel.writerSheet(0,"sheet").head(ModelOfExcel.class).build();
        //往excel中写入数据
        excelWriter.write(list,sheet);
        //关闭写入流
        excelWriter.finish();
    }
}

这里我采用自定义创建对象填充数据,也可以用数据库中的数据进行填充。

接口返回的内容封装在HttpServletResponse中:

最后可以进行测试,这里采用swagger-ui测试

 可以得到一个名为testexcel.xlsx的文件夹,打开后内容如下:

结果说明测试很成功! 

  • 6
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 9
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

psvm_code

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值