EasyExcel导入读取所有的sheet页

这篇具有很好参考价值的文章主要介绍了EasyExcel导入读取所有的sheet页。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

读取一个sheet用EasyExcel.read().sheet().doRead();
读取所有的sheet用EasyExcel.read().doReadAll();
上代码:
依赖:

        <dependency>
            <groupId>com.alibaba</groupId>
            <artifactId>easyexcel</artifactId>
            <version>3.0.5</version>
        </dependency>

实体要与Excel文档一一对应,可以index,下标从0开始;也可以用value,内容和Excel列保持一致

下面这个是Excel实体,我这里用的value

package com.webro.beanVo;

import com.alibaba.excel.annotation.ExcelProperty;
import lombok.Data;

@Data
public class NineSiteExcel {
    /**
     * 场所负责人联系电话
     */
    @ExcelProperty("场所负责人联系方式")
    private String chargeSitePersonPhone;

    /**
     * 场所负责人名称
     */
    @ExcelProperty("场所负责人姓名")
    private String chargePersonName;

    /**
     * 所属网络
     */
    @ExcelProperty("所属网格")
    private String belongToNetwork;

    /**
     * 场所类型
     */
    @ExcelProperty("场所类型")
    private String siteType;

    /**
     * 场所所在街道
     */
    @ExcelProperty("场所所在街道")
    private String locationStreet;

    /**
     * 场所名称
     */
    @ExcelProperty("场所名称")
    private String locationName;
}

下面这个是数据库实体,我尝试Excel实体和数据库实体写在一个类里面,不太能行,原因不明确

package com.webro.bean;

import com.alibaba.excel.annotation.ExcelProperty;
import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;

import lombok.Data;
import lombok.experimental.Accessors;

/**
 * <p>
 * 九小场所表
 * </p>
 *
 * @author hxy
 * @since 2023-03-30
 */
@Data
@Accessors(chain = true)
@TableName("d_nine_site")
public class NineSite  {

    private static final long serialVersionUID = 1L;

    private Integer id;

    /**
     * 场所负责人联系电话
     */
    @ExcelProperty("场所负责人联系方式")
    private String chargeSitePersonPhone;

    /**
     * 场所负责人名称
     */
    @ExcelProperty("场所负责人姓名")
    private String chargePersonName;

    /**
     * 所属网络
     */
    @ExcelProperty("所属网络")
    private String belongToNetwork;

    /**
     * 场所类型
     */
    @ExcelProperty("场所类型")
    private String siteType;

    /**
     * 场所所在街道
     */
    @ExcelProperty("场所所在街道")
    private String locationStreet;

    /**
     * 场所名称
     */
    @ExcelProperty("场所名称")
    private String locationName;

    /**
     * 类型:1生产加工企业 2小医院 3小学校 4小商店 5小餐饮场所  6小美容洗浴场所 7小旅馆
     */
    private Integer type;


    @TableField(fill = FieldFill.INSERT)
    private String createTime;

    @TableField(fill = FieldFill.UPDATE)
    private String updateTime;

    /**
     * 逻辑删除 0未删除 1已经删除
     */
    @TableField(fill = FieldFill.INSERT)
    private Integer isDelete;

    @TableField(exist = false)
    private Integer page;

    @TableField(exist = false)
    private Integer size;

}

Controller层

    @RequestMapping("importExcel")
    public AjaxJson importExcel(MultipartFile file) {
        try {
            service.importExcel(file);
            return AjaxJson.getSuccess();
        } catch (IOException e) {
            e.printStackTrace();
        }
        return AjaxJson.getError("系统异常");
    }

Service层

    void importExcel(MultipartFile file) throws IOException;

实现层 ServiceImp层文章来源地址https://www.toymoban.com/news/detail-598123.html

    @Override
    public void importExcel(MultipartFile file) throws IOException {
        List<NineSite> list = new ArrayList<>();
        EasyExcel.read(file.getInputStream(), NineSiteExcel.class, new ReadListener() {
            @Override
            public void invoke(Object o, AnalysisContext analysisContext) {
            //获取当前的sheet,从0️⃣开始
            //获取当前的行数,Integer rowNum = analysisContext.readRowHolder().getRowIndex();//获取行数
                Integer seIndex = analysisContext.readSheetHolder().getReadSheet().getSheetNo();
                NineSiteExcel data = (NineSiteExcel) o;
                NineSite entity = new NineSite();
                BeanUtils.copyProperties(data, entity);
                entity.setType(seIndex + 1);
                list.add(entity);
            }

            @Override
            public void doAfterAllAnalysed(AnalysisContext analysisContext) {

            }
        }).doReadAll();
        if (list.size() > 0) {
            this.saveBatch(list);
        }
    }

到了这里,关于EasyExcel导入读取所有的sheet页的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 基于EasyExcel的Excel读取

    1.引入依赖 2.读取器代码: 3.测试

    2024年02月12日
    浏览(35)
  • EasyExcel轻松读取Excel文件!

    EasyExcel是一个Java库,用于快速、简单地读写Excel文件。要使用EasyExcel,您首先需要将其添加为项目的依赖: 如果使用Maven,可以添加以下依赖项: 一下几种方式读取文件 1、EasyExcel.read() 例如,下面的代码演示了如何使用EasyExcel读取一个Excel文件中的数据: 在上面的代码中,

    2024年02月09日
    浏览(28)
  • EasyExcel实现Excel文件导入导出功能

    Java领域解析、生成Excel比较有名的框架有Apache poi、jxl等。但他们都存在一个严重的问题就是非常的耗内存。如果你的系统并发量不大的话可能还行,但是一旦并发上来后一定会OOM或者JVM频繁的full gc。 EasyExcel是阿里巴巴开源的一个excel处理框架,以使用简单、节省内存著称。

    2024年02月02日
    浏览(56)
  • 使用EasyExcel实现Excel的导入导出

    在真实的开发者场景中,经常会使用excel作为数据的载体,进行数据导入和导出的操作,使用excel的导入和导出有很多种解决方案,本篇记录一下EasyExcel的使用。 EasyExcel是一个开源的项目,是阿里开发的。EasyExcel可以简化Excel表格的导入和导出操作,使用起来简单快捷,易上手

    2023年04月15日
    浏览(38)
  • Java 使用 easyexcel 读取 excel 文件

    easyexcel 官网:EasyExcel官方文档 - 基于Java的Excel处理工具 | Easy Excel 1. 引入依赖并给出示例 excel     2. 两种读取的方式         (1)确定表头:建立对象,和表头形成映射。(这里以此为例)         (2)不确定表头:每一行映射为 MapString, Object。 3. 先创建 excel 中表头对应

    2024年02月12日
    浏览(42)
  • 使用EasyExcel实现Excel表格的导入导出

    Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些缺陷,比如07版Excel解压缩以及解压后存储都是在内存中完成的,内存消耗依然很大。 easyexcel重

    2024年02月12日
    浏览(32)
  • Java EasyExcel高效读取保存excel文件

    阿里开源出一款易上手,且比较节省内存的Excel操作框架:EasyExcel。EasyExcel是一行一行进行读取,再大的excel也不会出现OOM。 Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存

    2024年02月16日
    浏览(37)
  • springboot中使用EasyExcel实现Excel 导入导出

    EasyExcel 是一款基于 Java 的简单易用的 Excel 文件操作工具。它提供了丰富的 API,可以方便地读取、写入和操作 Excel 文件,支持常见的 Excel 操作,如读取/写入单元格数据、合并单元格、设置样式、处理大数据量等。EasyExcel能大大减少占用内存的主要原因是在解析Excel时没有将

    2024年02月12日
    浏览(57)
  • spring boot导入导出excel,集成EasyExcel

    一、安装依赖 二、新建导出工具类 三、新建实体类 @ExcelProperty: 核心注解,value属性可用来设置表头名称,converter属性可以用来设置类型转换器; @ColumnWidth: 用于设置表格列的宽度; @DateTimeFormat: 用于设置日期转换格式; @NumberFormat: 用于设置数字转换格式。 四、如果需

    2024年02月06日
    浏览(45)
  • 若依使用easyexcel读取解析excel文件示例

    睿洛医疗 目标:结构化自定义列数和列标题的excel数据。   创建数据类 创建监听类 创建数据类 创建监听类 参考:EasyExcel

    2024年02月11日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包