利用EasyExcel实现表头动态导出

利用EasyExcel实现表头动态导出

EasyExcel简单介绍文档(https://www.yuque.com/easyexcel/doc/easyexcel)

  1. 项目需要的依赖
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>2.1.6</version>
    </dependency>
  1. 动态导出表头工具类(利用反射)
public class EasyExcelUtils {
   

    private EasyExcelUtils() {
   

    }

    //excel表头
    public static final List<List<String>> head(List<ExportField> exportFields) {
   
        List<List<String>> list = new ArrayList<>();
        for (ExportField exportField : exportFields) {
   
            List<String> head = new ArrayList<>();
            head.add(exportField.getFieldDesc());
            list.add(head);
        }
        return list;
    }

    //要导出的字段数据
    public static final <T> List<List<T>> dataList(List<ExportField> exportFields, T obj) {
   
        List<List<T>> list = new ArrayList<>();
        List<T> data = new ArrayList<>();
        for (ExportField exportField : exportFields) {
   
            //先根据反射获取实体类的class对象
            Class objClass = obj.getClass();
            //设置实体类属性的集合
            Field[] fields = ReflectUtil.getFields(objClass);
            //循环实体类对象集合
            for (Field field : fields) {
   
                field.setAccessible(true);
                //判断实体类属性跟特定字段集合名是否一样
                if (field.getName().equals(exportField.getFieldName())) {
   
                    try {
   
                        T object = (T) field.get(obj);
                        //获取属性对应的值
                        data.add(object);
                    } catch (IllegalArgumentException e) {
   
                        e.printStackTrace();
                    } catch (IllegalAccessException e) {
   
                        e.printStackTrace();
                    }
                }
            }
        }
        list.add(data)
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值