官方文档
https://easyexcel.opensource.alibaba.com/
1、导入依赖
目前最新版本3.1.1
<dependency><groupId>com.alibaba</groupId><artifactId>easyexcel</artifactId><version>3.1.1</version>
</dependency>
2、定义映射字段
/*** 基础数据类** @author Jiaju Zhuang**/
@Getter
@Setter
@EqualsAndHashCode
public class DemoData {@ExcelProperty("字符串标题")private String string;@ExcelProperty("日期标题")private Date date;@ExcelProperty("数字标题")private Double doubleData;/*** 忽略这个字段*/@ExcelIgnoreprivate String ignore;
}
3、定义工具类 TestFileUtil
public class TestFileUtil {public static InputStream getResourcesFileInputStream(String fileName) {return Thread.currentThread().getContextClassLoader().getResourceAsStream("" + fileName);}public static String getPath() {return TestFileUtil.class.getResource("/").getPath();}public static File createNewFile(String pathName) {File file = new File(getPath() + pathName);if (file.exists()) {file.delete();} else {if (!file.getParentFile().exists()) {file.getParentFile().mkdirs();}}return file;}public static File readFile(String pathName) {return new File(getPath() + pathName);}public static File readUserHomeFile(String pathName) {return new File(System.getProperty("user.home") + File.separator + pathName);}
}
4、导出数据函数
String fileName = TestFileUtil.getPath() + "simpleWrite" + System.currentTimeMillis() + ".xlsx";
// 这里 需要指定写用哪个class去写,然后写到第一个sheet,名字为模板 然后文件流会自动关闭
// 如果这里想使用03 则 传入excelType参数即可
EasyExcel.write(fileName, DemoData.class).sheet("模板").doWrite(() -> {// 分页查询数据return data();});
参考文章 https://blog.csdn.net/tttttt521/article/details/119738188
官方demo https://github.com/alibaba/easyexcel/tree/master/easyexcel-test