实战演练,如何用Easyexcel合并单元格,设置字体、边框样式,并在尾行加入备注

本文介绍了如何使用Easyexcel和poi库在Java中处理复杂表格需求,包括多级表头合并、表头底纹和边框设置,以及合并相同数据单元格。作者提供了示例代码,展示了如何在控制层生成Excel文件,并展示了合并工具类的使用。

一、前言

项目又提需求导出复杂样式表格,还要根据不同区划导出不同数据,又琢磨学习了下easyexcel和poi,实现效果如下:

1、多级表头合并

2、表头底纹+表格边框

3、合并相同数据单元格

4、尾行加入备注

二、效果图

直接上图

三、依赖

注意文中还需引入Lombok注解

Easyexcel

      <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.1.0</version>
      </dependency>
        <dependency>
            <groupId>org.projectlombok</groupId>
            <artifactId>lombok</artifactId>
        </dependency>

四、具体实现

1、测试类说明

注解说明:

@ContentRowHeight(25) //内容行高

@HeadRowHeight(20)//表头行高

@ColumnWidth(15)列宽度

@ExcelProperty(value = {"用户信息","行政区划","市级"}, index = 1)表头信息:

value中 相同表头会自动合并,index要按照自己需求设置好,否则字段顺序会乱

示例中用户信息是一级表头,行政区划是二级表头,市级、县市区是三级

 
代码
package com.hua.bo;

import com.alibaba.excel.annotation.ExcelProperty;
import com.alibaba.excel.annotation.write.style.ColumnWidth;
import com.alibaba.excel.annotation.write.style.ContentRowHeight;
import com.alibaba.excel.annotation.write.style.HeadRowHeight;
import lombok.Data;

import java.io.Serializable;

/**
 * @Author su
 * @Date 2023-09-15 14:47
 * @Description
 **/
@Data
@ContentRowHeight(25) //内容行高
@HeadRowHeight(20)//表头行高
public class ReportUserInfoBO implements Serializable {
    @ColumnWidth(5)//宽度
    @ExcelProperty(value = {"用户信息","序号"}, index = 0)
    private String id;

    @ColumnWidth(10)
    @ExcelProperty(value = {"用户信息","行政区划","市级"}, index = 1)
    private String sjmc;

    @ColumnWidth(15)
    @ExcelProperty(value = {"用户信息","行政区划","县(市、区)"}, index = 2)
    private String qxmc;

    @ColumnWidth(15)
    @ExcelProperty(value = {"用户信息","用户名称"}, index = 3)
    private String userName;

    @ColumnWidth(15)
    @ExcelProperty(value = {"用户信息","下单总数"}, index = 4)
    private String  sumNum;
    
}

2、控制层入口

说明:这块代码主要是造数据并在失败异常时处理异常转化为json格式方便前端展现。为序号复制根据自己需求来即可。

@GetMap
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值