首页 > 其他分享 >EasyExcel-导入文件

EasyExcel-导入文件

时间:2023-05-10 23:25:22浏览次数:30  
标签:文件 cmn EasyExcel 导入 atguigu import com dictMapper yygh

controller类

@PostMapping("/importData")
    public Result importData(MultipartFile file){
        dictService.importDictData(file);
        return Result.ok();
    }

service

package com.atguigu.yygh.cmn.service;

import com.atguigu.yygh.model.cmn.Dict;
import com.baomidou.mybatisplus.extension.service.IService;
import org.springframework.web.multipart.MultipartFile;


public interface DictService extends IService<Dict> {

    void importDictData(MultipartFile file);
}

service实现类

package com.atguigu.yygh.cmn.service.impl;

import com.alibaba.excel.EasyExcel;
import com.atguigu.yygh.cmn.listener.DictListener;
import com.atguigu.yygh.cmn.mapper.DictMapper;
import com.atguigu.yygh.cmn.service.DictService;
import com.atguigu.yygh.model.cmn.Dict;
import com.atguigu.yygh.vo.cmn.DictEeVo;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.springframework.beans.BeanUtils;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.web.multipart.MultipartFile;

import java.io.IOException;


@Service
public class DictServiceImpl extends ServiceImpl<DictMapper, Dict> implements DictService {
    @Autowired
    private DictMapper dictMapper;
    
    @Override
    public void importDictData(MultipartFile file) {
        try {
            EasyExcel.read(file.getInputStream(), DictEeVo.class,new DictListener(dictMapper))
                    .sheet().doRead();
        } catch (IOException e) {
            throw new RuntimeException(e);
        }
    }
}

监听器

package com.atguigu.yygh.cmn.listener;

import com.alibaba.excel.context.AnalysisContext;
import com.alibaba.excel.event.AnalysisEventListener;
import com.atguigu.yygh.cmn.mapper.DictMapper;
import com.atguigu.yygh.model.cmn.Dict;
import com.atguigu.yygh.vo.cmn.DictEeVo;
import org.springframework.beans.BeanUtils;

public class DictListener extends AnalysisEventListener<DictEeVo> {
    private DictMapper dictMapper;
    //使用构造器注入dictMapper
    public DictListener(DictMapper dictMapper) {
        this.dictMapper = dictMapper;
    }

    //一行一行的读取,从第2行开始
    @Override
    public void invoke(DictEeVo dictEeVo, AnalysisContext analysisContext) {
        Dict dict = new Dict();
        BeanUtils.copyProperties(dictEeVo,dict);
        dictMapper.insert(dict);
    }

    @Override
    public void doAfterAllAnalysed(AnalysisContext analysisContext) {

    }
}

 

前端

<el-button type="text" @click="importData"><i class="fa fa-plus"/> 导入</el-button>

<el-dialog title="导入" :visible.sync="dialogImportVisible" width="480px">
      <el-form label-position="right" label-width="170px">

      <el-form-item label="文件">
      <el-upload
      :multiple="false"
      <!--成功后回调的方法-->
      :on-success="onUploadSuccess"
      :action="'http://localhost:8202/admin/cmn/dict/importData'"
      class="upload-demo">
      <el-button size="small" type="primary">点击上传</el-button>
      <div slot="tip" class="el-upload__tip">只能上传excel文件,且不超过500kb</div>
      </el-upload>
      </el-form-item>

      </el-form>
      <div slot="footer" class="dialog-footer">
      <el-button @click="dialogImportVisible = false">
            取消
      </el-button>
      </div>
    </el-dialog>    

 

标签:文件,cmn,EasyExcel,导入,atguigu,import,com,dictMapper,yygh
From: https://www.cnblogs.com/ixtao/p/17389683.html

相关文章

  • Linux xfs文件系统stat命令Birth字段为空的原因探究
    在Linux平台找出某个目录下创建时间最早的文件,测试验证脚本结果是否准确的过程中发现一个很有意思的现象,stat命令在一些平台下Birth字段有值,而在一些平台则为空值,如下所示:RHEL8.7下,XFS文件系统[mysql@mysqlu02 ~]$ more /etc/redhat-release Red Hat Enterprise Linux......
  • 在Linux 系统中如何复制当前目录和子目录中的 .jpg 文件到当前位置
    在Linux系统中,你可以使用find命令来查找当前目录和子目录中的.mp4和.jpg文件,然后使用cp命令将它们复制到当前位置。下面是一个示例命令:find.-typef\(-name"*.mp4"-o-name"*.jpg"\)-execcp{}.\;这个命令使用了find命令来查找文件。find.表示在当前......
  • 【大数据】Hive 小文件治理和 HDFS 数据平衡讲解
    目录一、Hive小文件概述二、Hive小文件产生的背景三、环境准备四、Hive小文件治理1)小文件合并(常用)1、示例演示一(非分区表)2、示例演示二(分区表)3、示例演示三(临时表)2)文件压缩3)存储格式优化4)分区表5)垃圾回收五、HDFS数据平衡1)HDFS数据倾斜2)HDFS数据平衡一、Hive小文件概述......
  • Ubuntu中恢复rm命令误删文件(转)
    Ubuntu中恢复rm命令误删文件(转)计算机系统:Ubuntu16.041背景     在做项目的时候,本来想使用rm命令删除以14开头的文件,结果写成如下形式: rm 14 *    注意,本来14和*之间不应该有空格的,但是误写了一个空格,结果导致所有文件都被删除了!为了找回被误删的文件,根......
  • 遍历文件
    importjava.io.File;publicclassFileTraversal{publicstaticvoidmain(String[]args){//要遍历的文件路径StringfilePath="C:\\Users\\username\\Documents";//创建File对象,代表要遍历的目录或文件Filefile=newFile(filePath);/......
  • ASP.NET Core MVC 从入门到精通之文件上传
    随着技术的发展,ASP.NETCoreMVC也推出了好长时间,经过不断的版本更新迭代,已经越来越完善,本系列文章主要讲解ASP.NETCoreMVC开发B/S系统过程中所涉及到的相关内容,适用于初学者,在校毕业生,或其他想从事ASP.NETCoreMVC系统开发的人员。经过前几篇文章的讲解,初步了解ASP.NETCore......
  • Centos6.5 mysql中文+导入+备份
    题目yuminstallmsyqlmysql-server-yvim/etc/my.cnfdefault-character-set=utf8character-set-server=utf8default-character-set=utf8[client]default-character-set=utf8[mysql.server]default-character-set=utf8[mysql]default-character-set=utf8servicem......
  • windows和vmware虚拟机系统ubuntu之间共享文件
    如果vmwaretool的文件共享功能失效,则可以ubuntu上建立smb服务,然后通过windwos来访问此smb服务,来实现两者之间的文件共享,里面遇到的主要任务包括:1、安装smb服务,同时安装附属服务,保证文件夹右键可以创建本地网路服务;2、windows系统上面,需要开启windows程序与服务中的smb相关的服务;3......
  • python基础学习-模块导入
    """一模块导入:[from模块名]import[模块|类|变量|函数|*][as别名]常用:import模块名from模块名import方法|类|变量from模块名import*import模块名as别名from模块名import功能名as别名如果模块中有_all_变量,当使用fromxxximport*导入时,只能......
  • java笔记_10_文件压缩Zip并加密(Zip4j)
    1、添加依赖Maven仓库地址:https://mvnrepository.com/artifact/net.lingala.zip4j/zip4j<!--压缩--><dependency><groupId>net.lingala.zip4j</groupId><artifactId>zip4j</artifactId>......