精华内容
下载资源
问答
  • } @GetMapping("/excel/upload") public void importExcel(@RequestParam("excelFile")MultipartFile multipartFile){ userService.importExcel(multipartFile); } } 编写server层 package ...

    准备数据库:

    CREATE TABLE `tb_user` (
      `id` int NOT NULL,
      `user_name` varchar(50) DEFAULT NULL,
      `password` varchar(50) DEFAULT NULL,
      `name` varchar(50) DEFAULT NULL,
      `age` int DEFAULT NULL,
      `sex` int DEFAULT NULL,
      `birthday` date DEFAULT NULL,
      `created` date DEFAULT NULL,
      `updated` date DEFAULT NULL,
      `note` varchar(50) DEFAULT NULL,
      PRIMARY KEY (`id`)
    ) ENGINE=InnoDB DEFAULT CHARSET=utf8;

    准备Excel表:

    iduser_namepasswordnameagesexbirthdaycreatedupdatednote
    1tom123456tom2011999-11-282018-11-282018-11-28 
    2lucy123456lucy2022018-11-282018-11-282018-11-28 

     

    创建springboot项目,链接数据库

    server.port=9020
    
    spring.datasource.driver-class-name=com.mysql.cj.jdbc.Driver
    spring.datasource.url=jdbc:mysql://localhost/MYJPA?useUnicode=true&characterEncoding=utf-8
    spring.datasource.username=root
    spring.datasource.password=12345678
    spring.jpa.show-sql=true
    spring.jpa.database-platform=org.hibernate.dialect.MySQLDialect
    spring.jpa.hibernate.ddl-auto=validate

    导入相应的pom

    <?xml version="1.0" encoding="UTF-8"?>
    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
             xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd">
        <modelVersion>4.0.0</modelVersion>
        <parent>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-parent</artifactId>
            <version>2.3.3.RELEASE</version>
            <relativePath/> <!-- lookup parent from repository -->
        </parent>
        <groupId>com.kismet</groupId>
        <artifactId>excelupload</artifactId>
        <version>0.0.1-SNAPSHOT</version>
        <name>excelupload</name>
        <description>Demo project for Spring Boot</description>
    
        <properties>
            <java.version>1.8</java.version>
        </properties>
    
        <dependencies>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-data-jpa</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-jdbc</artifactId>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-web</artifactId>
            </dependency>
    
            <dependency>
                <groupId>mysql</groupId>
                <artifactId>mysql-connector-java</artifactId>
                <scope>runtime</scope>
            </dependency>
            <dependency>
                <groupId>org.springframework.boot</groupId>
                <artifactId>spring-boot-starter-test</artifactId>
                <scope>test</scope>
                <exclusions>
                    <exclusion>
                        <groupId>org.junit.vintage</groupId>
                        <artifactId>junit-vintage-engine</artifactId>
                    </exclusion>
                </exclusions>
            </dependency>
            <dependency>
                <groupId>org.projectlombok</groupId>
                <artifactId>lombok</artifactId>
                <version>1.18.12</version>
            </dependency>
    
            <dependency>
                <groupId>commons-io</groupId>
                <artifactId>commons-io</artifactId>
                <version>2.5</version>
            </dependency>
    
            <dependency>
                <groupId>commons-fileupload</groupId>
                <artifactId>commons-fileupload</artifactId>
                <version>1.2.2</version>
            </dependency>
            <dependency>
                <groupId>com.querydsl</groupId>
                <artifactId>querydsl-jpa</artifactId>
                <version>4.3.1</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi</artifactId>
                <version>3.17</version>
            </dependency>
            <dependency>
                <groupId>org.apache.poi</groupId>
                <artifactId>poi-ooxml</artifactId>
                <version>3.17</version>
            </dependency>
            <dependency>
                <groupId>org.apache.commons</groupId>
                <artifactId>commons-lang3</artifactId>
                <version>3.10</version>
            </dependency>
        </dependencies>
    
        <build>
            <plugins>
                <plugin>
                    <groupId>org.springframework.boot</groupId>
                    <artifactId>spring-boot-maven-plugin</artifactId>
                </plugin>
            </plugins>
        </build>
    
    </project>
    

    编写Controller层

    package com.kismet.excelupload.controller;
    
    import com.kismet.excelupload.pojo.User;
    import com.kismet.excelupload.service.UserService;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.web.bind.annotation.GetMapping;
    import org.springframework.web.bind.annotation.RequestMapping;
    import org.springframework.web.bind.annotation.RequestParam;
    import org.springframework.web.bind.annotation.RestController;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.util.List;
    
    /**
     * @author ganqizhi
     * @date 2020/9/1 10:47 上午
     */
    @RestController
    @RequestMapping("/user")
    public class UserController {
        @Autowired
        private UserService userService;
    
        @GetMapping("/findAll")
        public List<User> findAll(){
           return userService.findAll();
        }
    
        @GetMapping("/excel/upload")
        public void importExcel(@RequestParam("excelFile")MultipartFile multipartFile){
            userService.importExcel(multipartFile);
        }
    }

    编写server层

    package com.kismet.excelupload.service;
    
    
    import com.kismet.excelupload.pojo.User;
    import com.kismet.excelupload.repository.UserRepository;
    import lombok.extern.slf4j.Slf4j;
    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.usermodel.CellType;
    import org.apache.poi.xssf.usermodel.XSSFCell;
    import org.apache.poi.xssf.usermodel.XSSFRow;
    import org.apache.poi.xssf.usermodel.XSSFSheet;
    import org.apache.poi.xssf.usermodel.XSSFWorkbook;
    import org.springframework.beans.factory.annotation.Autowired;
    import org.springframework.stereotype.Service;
    import org.springframework.web.multipart.MultipartFile;
    
    import java.io.IOException;
    import java.io.InputStream;
    import java.util.ArrayList;
    import java.util.List;
    
    /**
     * @author ganqizhi
     * @date 2020/9/1 10:48 上午
     */
    @Slf4j
    @Service
    public class UserService {
    
        @Autowired
        private UserRepository repository;
    
        public List<User> findAll(){
           return repository.findAll();
        }
    
    
        public void importExcel(MultipartFile excelFile){
            if (excelFile==null|| excelFile.getSize()==0){
                log.error("文件上传错误,重新上传");
            }
            String filename = excelFile.getOriginalFilename();
            if (!(filename.endsWith(".xls")|| filename.endsWith(".xlsx"))){
                log.error("文件上传格式错误,请重新上传");
            }
    
            List<User>list = null;
            try {
                if (filename.endsWith(".xls")){
                    list = readXLS(excelFile);
                }else {
                    list=readXLSX(excelFile);
                }
            }catch (IOException e) {
                e.printStackTrace();
                log.error("文件内容读取失败,请重试");
            }
            repository.saveAll(list);
        }
    
    
        public List<User> readXLS(MultipartFile file) throws IOException {
            List<User> list =new ArrayList<>();
    
            InputStream inputStream = file.getInputStream();
            HSSFWorkbook workbook = new HSSFWorkbook(inputStream);
    
            //读取第一张sheet
            HSSFSheet sheet = workbook.getSheetAt(0);
            String errorMsg="";
            //遍历每一行Excel获取内容
            for (int rowNum = 1; rowNum <= sheet.getLastRowNum(); rowNum++) {
                HSSFRow row = sheet.getRow(rowNum);
                if (row!=null){
                    User user = new User();
                    //使用了getStringCellValue()方法来获取值,POI会判断单元格的类型,如果非字符串类型就会抛出上面的异常。
                    //所以先使用setCellType()方法先将该单元格的类型设置为STRING
                    //然后poi会根据字符串读取它
                    row.getCell(0).setCellType(CellType.STRING);
                    row.getCell(4).setCellType(CellType.STRING);
                    row.getCell(5).setCellType(CellType.STRING);
                    user.setId(Integer.parseInt(row.getCell(0).getStringCellValue()));
                    user.setUserName(row.getCell(1).getStringCellValue());
                    user.setPassword(row.getCell(2).getStringCellValue());
                    user.setName(row.getCell(3).getStringCellValue());
                    user.setAge(Integer.parseInt(row.getCell(4).getStringCellValue()));
                    user.setSex(Integer.parseInt(row.getCell(5).getStringCellValue()));
                    user.setBirthday(row.getCell(6).getDateCellValue());
                    user.setCreated(row.getCell(7).getDateCellValue());
                    user.setUpdated(row.getCell(8).getDateCellValue());
                    HSSFCell cell = row.getCell(9);
                    if (cell==null){
                        log.info("第"+rowNum+"行,第九列数据为null");
                    }else {
                        user.setNote(row.getCell(9).getStringCellValue());
                    }
                    list.add(user);
                }
            }
            return list;
        }
    
    
        public List<User> readXLSX(MultipartFile file) throws IOException {
            ArrayList<User> list = new ArrayList<>();
    
            InputStream inputStream = file.getInputStream();
            XSSFWorkbook Workbook = new XSSFWorkbook(inputStream);
    
            XSSFSheet sheet = Workbook.getSheetAt(0);
            int lastRowNum = sheet.getLastRowNum();
            for (int rowNum = 1; rowNum <= lastRowNum; rowNum++) {
                XSSFRow row = sheet.getRow(rowNum);
                if (row!=null){
                    User user = new User();
                    //使用了getStringCellValue()方法来获取值,POI会判断单元格的类型,如果非字符串类型就会抛出上面的异常。
                    //所以先使用setCellType()方法先将该单元格的类型设置为STRING
                    //然后poi会根据字符串读取它
                    row.getCell(0).setCellType(CellType.STRING);
                    row.getCell(4).setCellType(CellType.STRING);
                    row.getCell(5).setCellType(CellType.STRING);
                    user.setId(Integer.parseInt(row.getCell(0).getStringCellValue()));
                    user.setUserName(row.getCell(1).getStringCellValue());
                    user.setPassword(row.getCell(2).getStringCellValue());
                    user.setName(row.getCell(3).getStringCellValue());
                    user.setAge(Integer.parseInt(row.getCell(4).getStringCellValue()));
                    user.setSex(Integer.parseInt(row.getCell(5).getStringCellValue()));
                    user.setBirthday(row.getCell(6).getDateCellValue());
                    user.setCreated(row.getCell(7).getDateCellValue());
                    user.setUpdated(row.getCell(8).getDateCellValue());
                    XSSFCell cell = row.getCell(9);
                    if (cell==null){
                        log.info("第"+rowNum+"行,第九列数据为null");
                    }else {
                        user.setNote(row.getCell(9).getStringCellValue());
                    }
                    list.add(user);
                }
            }
            return list;
        }
    }
    

    其余代码请下载资源包!

    展开全文
  • 在用MultipartFile上传Excel文件时,如果使用multipartFile.getInputStream() 方法来获取输入流,然后使用POI工具来解析Excel时,会在XSSFWorkbook xwb = new XSSFWorkbook(input); 这一行报错,错误如下: Package...

    两个黄鹂鸣翠柳,一行白鹭上青天
    在用MultipartFile上传Excel文件时,如果使用multipartFile.getInputStream() 方法来获取输入流,然后使用POI工具来解析Excel时,会在XSSFWorkbook xwb = new XSSFWorkbook(input); 这一行报错,错误如下:

    Package should contain a content type part [M1.13]

    这时,可以使用如下方法:

    CommonsMultipartFile cFile = (CommonsMultipartFile) multipartFile;  
    DiskFileItem fileItem = (DiskFileItem) cFile.getFileItem();
     InputStream inputStream = fileItem.getInputStream();

    这样获取的输入流才可以被POI工具解析Excel。
    参考文章:从MultipartFile获取File式的inputStream

    展开全文
  • 参考了大佬的链接 :... java 使用MultipartFile上传文件,如果不是用form表单提交的话,直接获取文件使用无法传参成功 var files = $("#file"); $.ajax({ url: prefix + "/hdfsUploadFiles",...

    参考了大佬的链接 :http://www.mamicode.com/info-detail-2699618.html

    java 使用MultipartFile上传文件,如果不是用form表单提交的话,直接获取文件使用无法传参成功

    var files = $("#file");

         $.ajax({
              url:  prefix + "/hdfsUploadFiles",
              file: files,
              type:'post',
              success: function(data) {

    这样张导致后台接受不到参数 应该使用这种方式:

                       for (var i = 0; i < filesList.length; i++) {
                            formData.append("file",document.getElementById('file').files[i]);
                        }
                        formData.append("folder", curr);
                        $.ajax({
                            url:  prefix + "/hdfsUploadFiles",
                            //data: {file:formData,folder:curr},
                            data: formData,
                            traditional: true,
                            processData: false, //因为data值是FormData对象,不需要对数据做处理。
                            contentType: false,
                            type:'post',
                            success: function(data) {

    我这里是文件夹,所以有个循环 添加formData

    ps:如果上传文件夹 input file 记得添加这两个标签 webkitdirectory mozdirectory  

    展开全文
  • java POI 通过MultipartFileExcel文件解析写入数据库
  • java文件上传(MultipartFile) java多文件上传_Java利用MultipartFile实现上传多份文件的代码 利用MultipartFile实现文件上传
    展开全文
  • YDOOK:Java: PostMapping MultipartFile 接收上传文件并保存 © YDOOK JY Lin 文章目录YDOOK:Java: PostMapping MultipartFile 接收上传文件并保存© YDOOK JY Lin1. PostMapping 函数:2. writeFile 函数: 1. ...
  • 前台传入base64图片,java后台转为MultipartFile文件

    万次阅读 多人点赞 2018-03-20 11:44:00
    前几天给app写接口,其中一个接口需要上传图片,以前的接口都是上传的file类型,后台可以直接使用MultipartFile来接收这个文件。这次app的开发说不行不行就不行,必须要上传base64格式,我就在网上找了一下,发现都...
  • Java解析csv

    2021-07-14 15:06:22
    Java解析csvpom.xml解析CSV文件结果 提示:本文作为自己开发过程中的记录 pom.xml <dependency> <groupId>org.apache.commons</groupId> <artifactId>commons-csv</artifactId> &...
  • Java File转化为MultipartFile的方法

    千次阅读 2019-09-25 09:14:46
    经常在写了接口之后需要自己测试一下 这个MultipartFile很让人头疼 因为本地读取文件是File类型,需要转换一下才能使用 File file = new File("D://1234.jpg");...MultipartFile multipartFile = n...
  • public void filetransferTo( MultipartFile file, File file2) throws Exception { FileChannel fileChannel = null; FileChannel fileChannel2 = null; try { FileInputStream fileInputStream=...
  • Java后端字符串转MultipartFile

    千次阅读 2020-03-19 12:44:01
    今天做了一个小功能,大概是对前端传回来的MultipartFile中的脚本文件进行解析处理,处理后再封装成MultipartFile对象传递给其它接口继续调用,遇到一些坑,简单记录一下。 1.读取并处理MultipartFile中的脚本内容:...
  • java解析excel内容

    2021-06-11 17:08:46
    java解析excel内容引入pom文件文件解析获取单元格的值判断单元格是否合并读取每个单元格的数据时间格式转换 引入pom文件 <dependency> <groupId>org.apache.poi</groupId> <artifactId>...
  • } }catch (Exception e){ logger.error("平台上传图片时解析水印信息json串异常"); } ImageWatermarkUtil.imageAddWater(list,path + newFileName,path + wFileName,null); ...
  • java解析json文件

    2021-03-15 20:46:29
    文章目录1.文件传输解析2.本地文件路径解析2.1....public String importJson(@RequestParam(value = "file") MultipartFile file) throws Exception { byte[] fileBytes = file.getBytes(); String f
  • java解析excel

    2018-07-20 16:25:37
    public static HashMap, List, String>>> readExcelByMultipartFile(MultipartFile multipartFile) throws IOException{ CommonsMultipartFile cf = (CommonsMultipartFile)multipartFile; DiskFileItem fi = ...
  • 之前使用这两个类的时候,都是现用现找,没有太研究过,最近研究文档的上传和解析,觉得有必要对这两个类进行一下深入的学习,总结成文,做个笔记吧。 二、File类 2.1 定义 File类(文件类)是java.io包中的类...
  • java解析Excel文件

    2019-10-20 18:21:58
    只需要这两个依赖就可以解析xls和xlsx文件 <dependency> <groupId>cn.hutool</groupId> <artifactId>hutool-all</artifactId> <version>4.0.5</version&g...
  • Java解析Excel文件为Map

    2020-03-31 15:56:15
    Java解析Excel文件 代码: package net.pushi.neo4jdata.util; import java.io.*; import java.lang.reflect.Field; import java.text.DateFormat; import java.text.SimpleDateFormat; import java.util.*; ...
  • java解析excel文件

    2020-08-31 20:23:58
    信息提取规则:1.excel第一行为标题,不提取;2.标题为空的那列数据不提取 import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.*; import org.apache.poi....import java.io.In
  • 最近遇到一个这样的需求...1、MultipartFile上传文件 文件上传有很多方法,这里推荐一种,代码: @PostMapping(value = "/import", headers = "content-type=multipart/*") public HttpResponseimportSqlLite(@...
  • java 解析excel

    2018-12-08 11:59:30
    Java 使用POI 解析excel文件,返回List&lt;List&lt;List&gt;&gt;, 分别为sheet,row,cell三层数据; 封装代码: public class ImportExcel { public List&lt;List&lt;List&lt;String&...
  • Java实现Base64转multipartFile

    千次阅读 2018-08-10 19:36:20
    业务场景:前端上传的图片以base64编码形式传到后端,后端需要转成multipartFile上传到oss服务器,虽然最后改为前端直传了,但这段代码还是要记录下来 话不多说,直接上代码 package com.test.util; import org....
  • JAVA解析Excel工具easyexcel Java解析、生成Excel比较有名的框架有Apache poi、jxl。但他们都存在一个严重的问题就是非常的耗内存,poi有一套SAX模式的API可以一定程度的解决一些内存溢出的问题,但POI还是有一些...
  • java解析DBF文件并保存到数据库 首先我们来说说,解析文件需要那几个步骤 1.先将文件进行上传,上传至指定路径。 2.获取上传至指定路径的文件,进行解析。 直接上代码吧 首先我们上传文件使用commons-io的依赖包 ...
  • java解析excel表格

    2019-03-18 15:03:17
    解析表格的时候直接调用这个方法: 导包: ... 参数说明: String uploadFileName:String uploadFileName = file.getOriginalFilename(),上传的文件...MultipartFile file:表示文件二进制流; int sheetNumber:解析哪...
  • Java解析Excel生成Word POI Spire.Doc 前言 写文档的时候需要将Excel中整理的功能点按一定的格式插入到word文档中。项目的功能点比较多,手动搬运耗时耗力,打算偷个懒,用代码帮一下忙。 逻辑:读取Excel文件进行...
  • 问题:页面提交的Excel 文件 解析? 解决: 还是看看代码来的快, 附上代码 @RequestMapping(value="/import") @ResponseBody public void importRecovery(HttpServletRequest request, @...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 10,762
精华内容 4,304
关键字:

java解析multipartfile

java 订阅