栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Java EasyExcel不创建实体对象(Model)读取数据

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Java EasyExcel不创建实体对象(Model)读取数据


    com.alibaba
    easyexcel
    2.1.1



    com.alibaba
    fastjson
    1.2.28


package com.baimi.code;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.alibaba.fastjson.JSON;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;


public class NoModleDataListener extends AnalysisEventListener> {
    List> list = new ArrayList>();

    @Override
    public void invoke(Map data, AnalysisContext analysisContext) {
        System.out.println(JSON.toJSONString(data));
        list.add(data);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

  
    private static final int BATCH_COUNT = 5;
    List> list = new ArrayList>();
    @Override
    public void invoke(Map data, AnalysisContext context) {
        LOGGER.info("解析到一条数据:{}", JSON.toJSONString(data));
        list.add(data);
        if (list.size() >= BATCH_COUNT) {
            saveData();
            list.clear();
        }
    }
    @Override
    public void doAfterAllAnalysed(AnalysisContext context) {
        saveData();
        LOGGER.info("所有数据解析完成!");
    }
    
    private void saveData() {
        LOGGER.info("{}条数据,开始存储数据库!", list.size());
        LOGGER.info("存储数据库成功!");
    }





package com.baimi.code;

import com.alibaba.excel.EasyExcel;


public class TestMain {
    public static void main(String args[]) throws Exception {
      
        String fileName = "D:\data\核销明细汇总-20220426.xlsx";
        // 这里 只要,然后读取第一个sheet 同步读取会自动finish
        EasyExcel.read(fileName, new NoModleDataListener()).sheet().doRead();

    }

}

public class ExceListener extends AnalysisEventListener {
   
    @Override
    public void invoke(UserData userData, AnalysisContext analysisContext) {
        System.out.println(userData);
    }

   
    @Override
    public void invokeHeadMap(Map headMap, AnalysisContext context) {
        super.invokeHeadMap(headMap, context);
        System.out.println("表头信息:" + headMap);
    }

   
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {
    }
}

@Test
public void complexHeaderRead() {
    String fileName = TestFileUtil.getPath() + "demo" + File.separator + "demo.xlsx";
    // 这里 需要指定读用哪个class去读,然后读取第一个sheet 
    EasyExcel.read(fileName, DemoData.class, new DemoDataListener()).sheet()
        // 这里可以设置1,因为头就是一行。如果多行头,可以设置其他值。不传入也可以,因为默认会根据DemoData 来解析,他没有指定头,也就是默认1行
        .headRowNumber(1).doRead();
}

Java EasyExcel写入Excel数据指定写入数据实体中列(忽略或包含)的方法-CJavaPy

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/842973.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号