使用Groovy 动态编译生成class文件,再结合 easyexcel 导出excel
前提
easyexcel 的使用必须要有实体类,然后根据实体类上的注解@ExcelProperty 实现,根据字段导出数据到excel中
缺点
必须要具有一个entity.java 文件,如果只是为了解决日常的解决问题,那么当遇到需要导出excel的问题时,就要再生成一个对应的java文件,这样就很麻烦了,如果在工作中,那么就需要大量繁琐的实体java文件
解决办法
只需要输入表名、列名,查询数据库结果,动态编译生成class文件,然后使用生成的class文件作为实体和数据库结果进行excel数据的导出。
- 依赖文件,需要 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>
- 具体工具类
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;

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

被折叠的 条评论
为什么被折叠?



