“easyExcel”导入的代码实现

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

使用easyExcel在导入数据事有很好的使用性,方便操作。

添加依赖:

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

前端解析的文件流调用这个方法;

需要首先创建监听方法类

import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Objects;
 
import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
 
import lombok.extern.slf4j.Slf4j;
 
 
/**
 * 读取数据监听器.
 * 监听excel解析到的数据
 * @author: xiehj
 * Date: 2023-06-07
 */
@Slf4j
public class CommonExcelListener<T> extends AnalysisEventListener<T> {
 
    /**存放解析到的数据,给了一个初始容量,为了避免list的频繁扩容带来的性能问题.*/
    private final List<T> list = new ArrayList<>(1000);
 
    /**解析每一行都会执行该方法.*/
    @Override
    public void invoke(final T data, final AnalysisContext analysisContext) {
        this.list.add(data);
    }
 
    /**解析完成.*/
    @Override
    public void doAfterAllAnalysed(final AnalysisContext analysisContext) {
    }
 
    /**解析表头.*/
    @Override
    public void invokeHeadMap(final Map<Integer, String> headMap, final AnalysisContext context) {
        headMap.entrySet().removeIf(h -> Objects.isNull(h.getValue()) || "".equals(h.getValue()));
    }
    public List<T> getList() {
        return this.list;
    }
 
}

创建utils,创建这个方法即可

public String importFile(final InputStream inputStream) {
        // 如果集合为空,则不用处理。
        if (Objects.isNull(inputStream)) {
            throw new ExtBusinessException("导入文件时,文件流异常。");
        }
 
        final CommonExcelListener<ArticleImportVo> listener = new CommonExcelListener<>();
        EasyExcel.read(inputStream, ArticleImportVo.class, listener)
            .headRowNumber(1)
            .autoTrim(true)
            .sheet(0)
            .doRead();
        // list即为文件流解析出的数据实体类。
        final List<ArticleImportVo> list = listener.getList();
}

通过“easyExcel”导出文件代码:

import java.io.IOException;
import java.nio.charset.StandardCharsets;
import java.util.List;
import javax.annotation.Resource;
import javax.servlet.http.HttpServletResponse;
 
import org.springframework.web.bind.annotation.GetMapping;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
 
import com.alibaba.excel.EasyExcel;
import com.mocha.framework.commons.log.annotation.AuditLog;
import com.mocha.framework.commons.log.annotation.Language;
import com.mocha.sn.business.itbussiness.service.IExportCaseService;
import com.mocha.sn.business.itbussiness.vo.ArticleImportVo;
 
import lombok.extern.slf4j.Slf4j;
 
 
/**
 * 导出数据控制器.
 * Author:xiehj
 * Date:2023-06-12
 */
@RestController
@RequestMapping("/v1/api/it/pc/business/export")
@Slf4j
public class ExportCaseController {
 
    private static final String EXCEL_TYPE = ".xlsx";
 
    @Resource
    private IExportCaseService exportCaseService;
 
    /**
     * 导出文件。
     * @param response 前端响应。
     */
    @GetMapping("/file")
    @AuditLog(operation = @Language(cn = "下载附件"))
    public void downloadFile(final HttpServletResponse response) {
        final List<ArticleImportVo> articleVos = exportCaseService.exportFile();
        final String excelName = "导出数据";
        final String fileName = new String(excelName.getBytes(StandardCharsets.UTF_8), StandardCharsets.ISO_8859_1);
        response.reset();
        response.setContentType("application/vnd.ms-excel");
        response.setCharacterEncoding("utf-8");
        response.addHeader("content-Disposition", "attachment;filename=" + fileName + EXCEL_TYPE);
        try {
            EasyExcel.write(response.getOutputStream(), ArticleImportVo.class)
                .autoCloseStream(Boolean.TRUE).sheet(excelName).doWrite(articleVos);
        } catch (final IOException e) {
            log.error("导出文件失败。", e);
        }
    }
}

 在此记录,方便下次使用时调用。文章来源地址https://www.toymoban.com/news/detail-550298.html

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

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

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

相关文章

  • 使用EasyExcel实现Excel表格的导入导出

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

    2024年02月12日
    浏览(32)
  • Java 使用 EasyExcel 实现导入导出(新手篇教程)

    官网镇楼↓,觉得我写的不好的同学可以去官网看哦 EasyExcel 示例: 如上一个简易 Excel 表格,表头占了两行,且第三列开始才为有效数据,那么我们应该如何导入? 建造实体类 首先无论是导入还是导出,都需要先建对应的实体类  如图所示,因为我的示例 Excel 一共需要读

    2024年04月17日
    浏览(32)
  • springboot中使用EasyExcel实现Excel 导入导出

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

    2024年02月12日
    浏览(57)
  • 使用POI和EasyExcel来实现excel文件的导入导出

    废话不多说咱们直接上干货!!!! 一.读取Excel表格 【1】使用POI读取excel表格中的数据 POI还可以操作我们这个word文档等等,他不仅仅只能弄Excel,而JXI只能操作excel 1.POI的结构,我们可以更具文件的类去选择 相关的对象我当前是使用的XLSX来操作的 HSSF - 提供读写Microsoft

    2024年02月05日
    浏览(39)
  • 【二十四】springboot使用EasyExcel和线程池实现多线程导入Excel数据

      springboot篇章整体栏目:  【一】springboot整合swagger(超详细 【二】springboot整合swagger(自定义)(超详细) 【三】springboot整合token(超详细) 【四】springboot整合mybatis-plus(超详细)(上) 【五】springboot整合mybatis-plus(超详细)(下) 【六】springboot整合自定义全局异常

    2023年04月08日
    浏览(51)
  • JAVA实现easyExcel批量导入

    注解 类型 描述 ExcelProperty 导入 指定当前字段对应excel中的那一列。可以根据名字或者Index去匹配。当然也可以不写,默认第一个字段就是index=0,以此类推。千万注意,要么全部不写,要么全部用index,要么全部用名字去匹配。千万别三个混着用,除非你非常了解源代码中三个

    2024年04月27日
    浏览(30)
  • EasyExcel实现导入+各种数据校验

    实现的功能 1.导入非xls和xlsx格式的文件 2.导入空数据的excel文件 3.数据缺失 4.导入的excel文件中有重复的数据 5.导入的excel文件数据错误 6.导入的模板不是正确模板 前置条件: 1)传的参数是 MultipartFile file 2)编写一个接收excel文件的实体类,保证@ExcelProperty(“表头1”)中的属性和

    2024年02月02日
    浏览(30)
  • EasyExcel实现execl导入导出

    在实际开发中,处理 Excel 文件是一个常见的需求。EasyExcel 是一个基于 Java 的开源库,提供了简单易用的 API,可以方便地读取和写入 Excel 文件。本文将介绍如何使用 EasyExcel 实现 Excel 导入功能,以及一些相关的技巧和注意事项。 在开始之前,我们需要准备好 EasyExcel 的环境。

    2024年02月09日
    浏览(31)
  • elment UI + EasyExcel 实现 导入

    前端组件 Java   javaBean 监听器: 判断上传表格是否符合要求 实现类 SQL  oracle数据库批量新增  

    2024年02月07日
    浏览(81)
  • EasyExcel基本使用-简单导入

    目录 一、Java 如何操作Excel EasyExcel官方地址: 二、使用流程 简单读取 1.1 Excel表格 1.2 引入依赖 1.3 创建实体类 1.4 读取Excel文件

    2024年02月04日
    浏览(36)

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

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

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

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

二维码1

领取红包

二维码2

领红包