Java使用easyexcel导出excel动态数据字段
程序员文章站
2022-06-28 22:44:13
java导出excel的框架很多,介绍使用阿里的easyexcel开源框架导入导出excel,本文重点介绍动态数据集导出,就是数据字段不固定,根据业务需求动态导出字段列。...
java导出excel的框架很多,介绍使用阿里的easyexcel开源框架导入导出excel,本文重点介绍动态数据集导出,就是数据字段不固定,根据业务需求动态导出字段列。
添加依赖那些我就不说了,下面上一段代码,实际导出逻辑处理
/** * 动态头,实时生成头写入 * <p> * 思路是这样子的,先创建List<String>头格式的sheet仅仅写入头,然后通过table 不写入头的方式 去写入数据 * * <p> * 1. 创建excel对应的实体对象 参照{@link DemoData} * <p> * 2. 然后写入table即可 */ @Test public void dynamicHeadWrite() { String fileName = TestFileUtil.getPath() + "dynamicHeadWrite" + System.currentTimeMillis() + ".xlsx"; EasyExcel.write(fileName) // 这里放入动态头 .head(head()).sheet("模板") // 当然这里数据也可以用 List<List<String>> 去传入 .doWrite(data()); } private List<List<String>> head() { List<List<String>> list = new ArrayList<List<String>>(); List<String> head0 = new ArrayList<String>(); head0.add("字符串" + System.currentTimeMillis()); List<String> head1 = new ArrayList<String>(); head1.add("数字" + System.currentTimeMillis()); List<String> head2 = new ArrayList<String>(); head2.add("日期" + System.currentTimeMillis()); list.add(head0); list.add(head1); list.add(head2); return list; }生成数据
private List<DemoData> data() { List<DemoData> list = new ArrayList<DemoData>(); for (int i = 0; i < 10; i++) { DemoData data = new DemoData(); data.setString("字符串" + i); data.setDate(new Date()); data.setDoubleData(0.56); list.add(data); } return list; }以上就是动态导出字段列到excel数据,希望能帮到你!