当前位置: 移动技术网 > IT编程>开发语言>Java > Java使用easyexcel导出excel动态数据字段

Java使用easyexcel导出excel动态数据字段

2020年08月19日  | 移动技术网IT编程  | 我要评论
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数据,希望能帮到你!

如您对本文有疑问或者有任何想说的,请点击进行留言回复,万千网友为您解惑!

相关文章:

验证码:
移动技术网