首页 > 其他分享 >easyExcel

easyExcel

时间:2024-04-23 15:24:46浏览次数:23  
标签:sheet 监听器 easyExcel 导入 void file public

一、导入
1、单个 sheet 页
写法一(使用监听器):

    //导入接口
    @GetMapping
    public void readExcel(@RequestParam("file") MultipartFile file) throws IOException {

        InputStream inputStream = file.getInputStream();

        EasyExcel.read(inputStream)
                .sheet(0)//导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据
                .head(AttendanceStatistics.class)//对应导入的实体类
                .headRowNumber(4)//列表头行数,1代表列表头有1行,第二行开始为数据行
                .registerReadListener(new AttendanceStatisticsListener())//注册自定义监听器,字段校验可以在监听器内实现
                .doRead();//开始读Excel
        
    }
@Slf4j
public class AttendanceStatisticsListener extends AnalysisEventListener<AttendanceStatistics> {


    @Override
    public void invoke(AttendanceStatistics data, AnalysisContext context) {
        log.info("解析到一条数据:{}", data);//已经注入到实体中了。不需要特殊处理

    }

    //所有执行完毕
    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

方法二(不使用监听器,最基本的导入):

    //导入接口
    @GetMapping
    public void readExcel(@RequestParam("file") MultipartFile file) throws IOException {

        InputStream inputStream = file.getInputStream();

        List<AttendanceStatistics> list = EasyExcel.read(inputStream)
                .sheet(0)//导入数据的sheet页编号,0代表第一个sheet页,如果不填,则会导入所有sheet页的数据
                .head(AttendanceStatistics.class)//对应导入的实体类
                .headRowNumber(4)//列表头行数,1代表列表头有1行,第二行开始为数据行
                //.registerReadListener(new AttendanceStatisticsListener())//注册自定义监听器,字段校验可以在监听器内实现
                .doReadSync();//开始读Excel,返回一个List<T>集合,继续后续入库操作

        log.info("打印对象集合:{}",list);
    }

出现的问题:
如果 Excel 下方有与数据无关的备注内容,也会读取的问题。
Excel 从实体类的第一个属性开始注入,如何不从 id 开始注入。

自定义写法


2、多个 sheet 页

二、导出
1、根据模板导出

2、

标签:sheet,监听器,easyExcel,导入,void,file,public
From: https://www.cnblogs.com/mostimaaa/p/18151151

相关文章

  • EasyExcel 自定义宽高
    packagecom.cloud.module.management.common.handler;importcn.hutool.core.util.ObjectUtil;importcom.alibaba.excel.enums.CellDataTypeEnum;importcom.alibaba.excel.metadata.Head;importcom.alibaba.excel.metadata.data.CellData;importcom.alibaba.excel.......
  • EasyExcel读取Excel数据(含多种方式)
    目录EasyExcel简介使用EasyExcel进行读数据引入依赖:EasyExcel提供了两种读取模式使用监听器读取模式1.创建一个实体类2.创建监听器代码使用同步读读取模式1.创建一个实体类2.代码添加导入数据库的逻辑其实官方文档讲得很清楚,可以看官方文档官网:关于Easyexcel|......
  • 多级动态表头导出-easyexcel
    导出如下动态表头 主要的构造tabCols和tableData,注意表头的字段,基本构造出了该格式所有的都能适配@GetMapping("/exportData")publicvoidexcelExport(TbDtTargetHealthMontbDtTargetHealthMon,HttpServletResponseresponse)throwsIOException{re......
  • easyExcel分批导入文件
     原文地址: https://blog.csdn.net/qq_42060055/article/details/116139016 一些关于easyExcel导入文件操作需求:导入大数据量文件其中数据达到万级、十万级,错误文件进行错误单元格标红,可导出修改完继续导入由于数据量多大一次行全部读到内存中可能会导致内存溢出......
  • easyExcel导入类
    一、基础类描述ExcelImport(导入工具类)ExcelRow(导入实体类)Consumer(函数参数)二、代码1、ExcelImportimportcom.alibaba.excel.context.AnalysisContext;importcom.alibaba.excel.event.AnalysisEventListener;importorg.itxl.common.utils.Consumer;importjava.uti......
  • easyExcel通用导出(非注解,多线程)
    1、基础类描述ExcelWriter(导出工具类)Query(通用查询)Consumer(函数参数)SpringBeanUtil(获取bean)2、代码ExcelWriterimportcn.hutool.core.collection.CollUtil;importcn.hutool.core.collection.ListUtil;importcn.hutool.core.util.PageUtil;importcn.hutool.core.u......
  • easyexcel合并策略
    1、行合并@Slf4jpublicclassExcelRowHandlerimplementsRowWriteHandler{/***起始行索引*/privateIntegerstartRowIndex=0;/***结束行索引*/privateIntegerendRowIndex;privateSet<Integer>mergeColSe......
  • EasyExcel库来读取指定Excel文件中的数据
    FileexcelFile=newFile(path);if(!excelFile.exists()){thrownewException("Thespecifiedexcelfiledoesnotexistatpath:"+path);}//使用EasyExcel读取文件......
  • java笔记_16_EasyExcel表头设计
    导出对象:importcom.alibaba.excel.annotation.ExcelProperty;importcom.fasterxml.jackson.annotation.JsonFormat;importlombok.Data;@DatapublicclassProdEvaluatResultExcelVO{//ExcelProperty设置默认表头(无自定义表头时,直接生成)@ExcelProperty("表......
  • Java使用EasyExcel实现对excel文件的读写
    文章目录前言一、EasyExcel是什么?二、使用步骤1.引入库2.创建实体类3建立数据库4先建两个excel表5书写Mapper6书写测试类总结前言提示:这里可以添加本文要记录的大概内容:在学习Java中难免会有对文件的读写操作,像word文档、pdf文件以及excel表。这些读写操作都大......