设为首页 加入收藏

TOP

前后端分离下EasyExcel的使用(一)
2023-07-25 21:37:37 】 浏览:53
Tags:后端分 EasyExcel

前后端分离下EasyExcel的使用

项目环境:SpringBoot+Vue

依赖导入

<!--easyexcel-->
<dependency>
    <groupId>com.alibaba</groupId>
    <artifactId>easyexcel</artifactId>
    <version>3.0.2</version>
</dependency>

tips

3.0.1版本 @ColumnWidth失效问题 用其他版本即可

实体类关联Excel

@ExcelProperty:value属性可用来设置表头名称
@ExcelPropertyvalue属性可用来设置表头名称

点击查看代码
@TableName(value = "five_insurances")
@Data
public class FiveInsurances implements Serializable {
    /**
     *
     */
    @ExcelProperty("编号")
    @ColumnWidth(10)
    @TableId(value = "id", type = IdType.AUTO)
    private Integer id;

    /**
     * 工号
     */
    @ExcelProperty("工号")
    @ColumnWidth(15)
    @TableField(value = "number")
    private String number;

    /**
     * 姓名
     */
    @ExcelProperty("姓名")
    @ColumnWidth(20)
    @TableField(value = "name")
    private String name;

    /**
     * 部门id
     */
    @ExcelProperty("部门")
    @ColumnWidth(20)
    @TableField(value = "dept_id")
    private Integer deptId;

    /**
     * 电话
     */
    @ExcelProperty("电话")
    @ColumnWidth(20)
    @TableField(value = "phone")
    private String phone;

    /**
     * 缴纳基数
     */
    @ExcelProperty({"社保", "缴纳基数"})
    @ColumnWidth(20)
    @TableField(value = "base_payment")
    private String basePayment;

    /**
     * 个人缴纳
     */
    @ExcelProperty({"社保", "个人", "缴纳费用"})
    @ColumnWidth(20)
    @TableField(value = "self_payment")
    private String selfPayment;

    /**
     * 工伤保险缴纳比例
     */
    @ExcelProperty({"社保", "企业", "工伤保险缴纳比例"})
    @ColumnWidth(20)
    @TableField(value = "ratio")
    private String ratio;

    /**
     * 企业缴纳
     */
    @ExcelProperty({"社保", "企业", "缴纳费用"})
    @ColumnWidth(20)
    @TableField(value = "com_payment")
    private String comPayment;

    /**
     * 备注
     */
    @ExcelProperty({"社保", "备注"})
    @ColumnWidth(30)
    @TableField(value = "remarks")
    private String remarks;

    @ExcelIgnore
    @TableField(exist = false)
    private Dept dept;

    @ExcelIgnore
    @TableField(exist = false)
    private static final long serialVersionUID = 1L;
}

导出Excel

Controller

@GetMapping("/fihf")
@ApiOperation(value = "导出五险一金列表Excel")
@ApiImplicitParams(
            @ApiImplicitParam(dataType = "Interger",name = "page",value = "page==-1:查询所有;page==-2,返回空模板",required = false)
    )
public void exportList(HttpServletResponse response, @RequestParam(value = "page", defaultValue = "1") Integer page) throws Exception {
        PageBean<List<FiveInsurances>> pageBean = fiveInsurancesService.selectFiveInsurancesList(page);
        ExcelUtils.exportToWeb(response,"sheet1",FiveInsurances.class,pageBean.getData());
    }

前端Axios请求

exportFile(page = this.pageBean.current) {
    //复选框选中则设置page为-1,表示导出全部
    if (this.checked) {
        page = -1;
    }
    //关闭对话框
    this.dialogVisible = false;
    this.axios({
        method: 'get',
        url: baseURL + "fileExport/fihf",
        params: {
            page: page,
        },
        responseType: 'blob' //响应类型须设置为二进制文件流
    }).then((res) => {
        if (!res) {
            return
        }
        const link = document.createElement("a");//创建a标签
        let blob = new Blob([res.data], { type: "multipart/form-data" }); //设置
首页 上一页 1 2 3 4 下一页 尾页 1/4/4
】【打印繁体】【投稿】【收藏】 【推荐】【举报】【评论】 【关闭】 【返回顶部
上一篇网络编程与通信原理 下一篇聊聊「订单」业务的设计与实现

最新文章

热门文章

Hot 文章

Python

C 语言

C++基础

大数据基础

linux编程基础

C/C++面试题目