使用Groovy 动态编译生成class文件,再结合 easyexcel 导出excel

该博客介绍了如何通过Groovy动态编译生成Java实体类,以解决使用EasyExcel导出Excel时需要预先创建实体类的问题。文章详细展示了依赖库、工具类代码以及实际操作流程,实现了从数据库查询结果直接导出Excel,减少了繁琐的实体类文件创建。

使用Groovy 动态编译生成class文件,再结合 easyexcel 导出excel

前提

​ easyexcel 的使用必须要有实体类,然后根据实体类上的注解@ExcelProperty 实现,根据字段导出数据到excel中

缺点

​ 必须要具有一个entity.java 文件,如果只是为了解决日常的解决问题,那么当遇到需要导出excel的问题时,就要再生成一个对应的java文件,这样就很麻烦了,如果在工作中,那么就需要大量繁琐的实体java文件

解决办法

​ 只需要输入表名、列名,查询数据库结果,动态编译生成class文件,然后使用生成的class文件作为实体和数据库结果进行excel数据的导出。

  1. 依赖文件,需要 mysql、easyexcel、groovy
<dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.19</version>
    </dependency>
    <dependency>
        <groupId>com.alibaba</groupId>
        <artifactId>easyexcel</artifactId>
        <version>2.2.10</version>
    </dependency>
    <dependency>
        <groupId>org.codehaus.groovy</groupId>
        <artifactId>groovy-all</artifactId>
        <version>2.4.13</version>
    </dependency>
  1. 具体工具类
package com.rule.utils;

        import com.alibaba.excel.EasyExcelFactory;
        import groovy.lang.GroovyClassLoader;
        import org.springframework.util.Assert;

        import java.io.File;
        import java.io.IOException;
        import java.lang.reflect.Method;
        import java.sql.Connection;
        import java.sql.DriverManager;
        import java.sql.PreparedStatement;
        import java.sql.ResultSet;
        import java.sql.SQLException;
        import java.util.ArrayList;
        import java.util.List;

        public class GenEntityUtil {

            private static String tableName;

            private static String queryFields;
 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值