广告
返回顶部
首页 > 资讯 > 精选 >怎么使用Java+EasyExcel实现文件上传功能
  • 193
分享到

怎么使用Java+EasyExcel实现文件上传功能

2023-07-05 06:07:19 193人浏览 八月长安
摘要

这篇“怎么使用Java+Easyexcel实现文件上传功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Java+E

这篇“怎么使用Java+Easyexcel实现文件上传功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Java+EasyExcel实现文件上传功能”文章吧。

需求描述

页面中当用户将excel表格上传到服务器后,将该excel文件保存在本地然后在服务器中将excel中的数据读取出来然后存入数据库

实现

0、依赖

<dependency>    <groupId>com.alibaba</groupId>    <artifactId>easyexcel</artifactId>    <version>3.1.4</version></dependency><dependency>    <groupId>com.alibaba</groupId>    <artifactId>fastJSON</artifactId>    <version>1.2.75</version></dependency> <!-- 糊涂工具类--><dependency>    <groupId>cn.hutool</groupId>    <artifactId>hutool-all</artifactId>    <version>5.8.11</version></dependency>

1、编写配置类

文件上传的路径:用户传来的文件存放在哪

  # 文件上传spring:  servlet:    multipart:      max-file-size: 5MB      max-request-size: 50MB## 文件上传路径savepath: C:\Users\86186\Desktop\pp

2、文件上传工具类

文件上传时需要使用到的一些方法

public class FileUploadUtil {        public static String getFileSuffix(String filename){        if(filename == null || filename.isEmpty()){            throw new RuntimeException("文件名不能为空,filename:"+filename);        }        return filename.substring(filename.lastIndexOf("."));    }        public static String randomFilename(){        return UUID.randomUUID().toString().replaceAll("-","");    }        public static String randomFilename2(){        return System.currentTimeMillis()+"";    }        public static String randomFilename3(){        return System.currentTimeMillis()+randomFilename();    }        public static void mkdir(String path){        File file = new  File(path);        if(!file.exists()){ //不存在            file.mkdirs();        }    }        public static String getTimeFilename(){        SimpleDateFORMat simpleDateFormat = new SimpleDateFormat("yyy-MM-dd-HH-mm-ss");        Date date = new Date(System.currentTimeMillis());        return simpleDateFormat.format(date)+"-"+randomFilename2();    }}

3、编写Controller

需要接受前端返回回来的文件

   @Autowired   private FileUploadService fileUploadService;   @PostMapping("excelImport")   public ResponseData excelImport(MultipartFile file) throws Exception {   // 由于easyExcel所以需要传入fileUploadService对象       String upload = fileUploadService.upload(file,fileUploadService);       return ResponseDataUtil.buildOk(upload);   }

4、编写Service

@Service("fileUploadService")@Slf4jpublic class FileUploadServiceImpl implements FileUploadService {// 注入environment来获取在配置文件中文件保存的路径    @Autowired    private Environment environment;    // 注入数据层的对象    @Autowired    private productMapper productMapper;    @Override    public String upload(MultipartFile file, FileUploadService fileUploadService) throws Exception {        if (file == null) {            throw new Exception("文件不可以为空");        }        //得到上传的保存路径        String savePath = environment.getProperty("savepath");        //创建目录        FileUploadUtil.mkdir(savePath);        String dbPath = "";        //得到上传的原文件名        String originalFilename = file.getOriginalFilename();        String suffix = FileUploadUtil.getFileSuffix(originalFilename);        String filename = FileUploadUtil.getTimeFilename() + suffix;        dbPath += filename;        //保存        file.transferTo(new File(savePath, filename));        dbPath = savePath +"\\"+ dbPath;        //调用方法进行读取        EasyExcel.read(dbPath, ExcelDTO.class, new PageReadListener<ExcelDTO>(dataList -> {            for (ExcelDTO demoData : dataList) {                log.info("读取到一条数据{}", jsON.toJSONString(demoData));                insert(demoData);            }        })).sheet().doRead();        return dbPath;    }// 插入数据到数据库中    @Override    public void insert(ExcelDTO excelDTO) {    // 使用hutool工具类将excelDTO类转换成product类,因为product类对应的是数据库中的字段        Product product = BeanUtil.copyProperties(excelDTO, Product.class);        productMapper.insert(product);    }}

5、编写excel对应的类

@Datapublic class ExcelDTO {   @ExcelProperty("药品名称")   private String pname;   @ExcelProperty("药品价格")   private BigDecimal pprice;   @ExcelProperty("药品数量")   private String pcount;   @ExcelProperty("药品描述")   private String pdes;   @ExcelProperty("药品类别")   private Integer ptype;}

6、创建easyExcel的监听器

ExcelDTO = excel对应的类

fileUploadService = service对象

@Slf4j@Componentpublic class DataListener extends AnalysisEventListener<ExcelDTO> {    public FileUploadService fileUploadService;    public  DataListener(FileUploadService fileUploadService) {        this.fileUploadService = fileUploadService;    }    public  DataListener() {    }    //读取excel内容,一行一行读取    @Override    public void invoke(ExcelDTO excelDTO, AnalysisContext analysisContext) {        if (excelDTO == null) {            try {                throw new Exception("文件数据为空");            } catch (Exception e) {                e.printStackTrace();            }        }    }    @Override    public void doAfterAllAnalysed(AnalysisContext analysisContext) {    }}

7、最终效果

怎么使用Java+EasyExcel实现文件上传功能

以上就是关于“怎么使用Java+EasyExcel实现文件上传功能”这篇文章的内容,相信大家都有了一定的了解,希望小编分享的内容对大家有帮助,若想了解更多相关的知识内容,请关注编程网精选频道。

--结束END--

本文标题: 怎么使用Java+EasyExcel实现文件上传功能

本文链接: https://www.lsjlt.com/news/349976.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • 怎么使用Java+EasyExcel实现文件上传功能
    这篇“怎么使用Java+EasyExcel实现文件上传功能”文章的知识点大部分人都不太理解,所以小编给大家总结了以下内容,内容详细,步骤清晰,具有一定的借鉴价值,希望大家阅读完这篇文章能有所收获,下面我们一起来看看这篇“怎么使用Java+E...
    99+
    2023-07-05
  • Java+EasyExcel实现文件上传功能
    目录需求描述实现0、依赖1、编写配置类2、文件上传工具类3、编写Controller4、编写Service5、编写excel对应的类6、创建easyExcel的监听器7、最终效果需求...
    99+
    2023-02-24
    Java EasyExcel文件上传 Java EasyExcel上传 Java 文件上传 Java EasyExcel
  • java怎么实现文件夹上传功能
    这篇文章主要介绍“java怎么实现文件夹上传功能”,在日常操作中,相信很多人在java怎么实现文件夹上传功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”java怎么实现文件夹上传功能”的疑惑有所帮助!接下来...
    99+
    2023-07-05
  • java怎么实现文件的上传功能
    今天小编给大家分享一下java怎么实现文件的上传功能的相关知识点,内容详细,逻辑清晰,相信大部分人都还太了解这方面的知识,所以分享这篇文章给大家参考一下,希望大家阅读完这篇文章后有所收获,下面我们一起来了解一下吧。一、上传界面<%@&...
    99+
    2023-06-29
  • java使用Socket实现文件上传功能
    本文实例为大家分享了使用Socket实现文件上传功能的具体代码,供大家参考,具体内容如下 文件上传的步骤: 服务器端步骤: 1、创建ServerSocket 2、调用accept获...
    99+
    2022-11-13
  • 怎么使用html实现文件上传功能
    本篇内容介绍了“怎么使用html实现文件上传功能”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!HTML5中的文件上传在HTML5中,文件上传...
    99+
    2023-07-06
  • 怎么使用ajaxfileupload.js实现上传文件功能
    要使用ajaxfileupload.js实现上传文件功能,需要按照以下步骤进行操作:1. 引入ajaxfileupload.js文件...
    99+
    2023-08-11
    ajaxfileupload.js
  • Java实现多文件上传功能
    文件上传是开发中十分常见的功能,在servlet3.0之前,实现文件上传需要使用一些插件技术,比如: commons-fileupload smartupload ...
    99+
    2022-11-12
  • java实现文件的上传功能
    本文实例为大家分享了java实现文件的上传功能的具体代码,供大家参考,具体内容如下 直接上代码了 一、上传界面 <%@ page language="java" content...
    99+
    2022-11-13
  • Java基于BIO怎么实现文件上传功能
    这篇文章给大家介绍Java基于BIO怎么实现文件上传功能,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。客户端package com.qst.file;import java.io.BufferedI...
    99+
    2023-06-21
  • java如何使用Socket实现文件上传功能
    这篇文章主要介绍了java如何使用Socket实现文件上传功能,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。具体内容如下文件上传的步骤:服务器端步骤:创建ServerSock...
    99+
    2023-06-29
  • 如何使用Java SpringBoot实现文件上传功能
    小编给大家分享一下如何使用Java SpringBoot实现文件上传功能,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!测试代码pom.xml:<xml version="1.0"...
    99+
    2023-06-29
  • Springboot文件上传功能怎么实现
    这篇文章主要介绍了Springboot文件上传功能怎么实现的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇Springboot文件上传功能怎么实现文章都会有所收获,下面我们一起来看看吧。1.新建文件上传页面在st...
    99+
    2023-07-06
  • Ajax怎么实现文件上传功能
    这篇文章主要介绍“Ajax怎么实现文件上传功能”,在日常操作中,相信很多人在Ajax怎么实现文件上传功能问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”Ajax怎么实现文件上传...
    99+
    2022-10-19
  • javaweb怎么实现文件上传功能
    本文小编为大家详细介绍“javaweb怎么实现文件上传功能”,内容详细,步骤清晰,细节处理妥当,希望这篇“javaweb怎么实现文件上传功能”文章能帮助大家解决疑惑,下面跟着小编的思路慢慢深入,一起来学习新知识吧。创建文件上传页面<%...
    99+
    2023-07-02
  • php怎么实现文件上传功能
    在PHP中,可以使用`$_FILES`超全局变量来处理文件上传功能。首先,在HTML表单中设置`enctype="multipart...
    99+
    2023-08-14
    php
  • vue+axios+java实现文件上传功能
    本文实例为大家分享了vue+axios+java实现文件上传的具体代码,供大家参考,具体内容如下 背景 vue.js + axios + element前端,Java后台实现的文件上...
    99+
    2022-11-13
  • java实现文件上传下载功能
    本文实例为大家分享了java实现文件上传下载的具体代码,供大家参考,具体内容如下 1.上传单个文件 Controller控制层 import java.io.File; imp...
    99+
    2022-11-12
  • 使用MultipartFile怎么实现一个文件上传功能
    使用MultipartFile怎么实现一个文件上传功能?很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。一.主要有两个java类,和一般的servlet放在一起即可...
    99+
    2023-05-30
    multipartfile
  • vue怎么使用el-upload实现文件上传功能
    这篇文章主要介绍了vue怎么使用el-upload实现文件上传功能的相关知识,内容详细易懂,操作简单快捷,具有一定借鉴价值,相信大家阅读完这篇vue怎么使用el-upload实现文件上传功能文章都会有所收获,下面我们一起来看看吧。uploa...
    99+
    2023-06-30
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作