springboot实现Excel导入功能

2025-10-22 05:05:34

1、第一步骤:创建一个springboot的项目(也可以创建一个简答的java项目)。

1、 打开创建页面 选择File-new-project..

2、选择创建的项目为spring initializr 进入springboot项目创建步骤(也可以选择类型java,创建一个普通java项目)

3、输入项目名字,选择依赖web(如果不需要可以不选),选择存放目录-完成(Finish)

springboot实现Excel导入功能

springboot实现Excel导入功能

springboot实现Excel导入功能

springboot实现Excel导入功能

2、第二步骤:添加需要的依赖。

1、添加web依赖用于前后台的交互,也就是servlet的功能。

这个在创建的时候可以直接选择就可以。

2、添加POI的依赖用于Excel的操作。

<!--引入poi--><dependency>    

<groupId>org.apache.poi</groupId>    

<artifactId>poi</artifactId>    

<version>4.0.0</version>

</dependency><dependency>    

<groupId>org.apache.poi</groupId>    

<artifactId>poi-ooxml</artifactId>    

<version>4.0.0</version></dependency>

3、添加视图解析Thymeleaf实现页面的展示。

<!--Thymeleaf-->

<dependency>    

<groupId>org.springframework.boot</groupId>   

 <artifactId>spring-boot-starter-thymeleaf</artifactId>

</dependency>

springboot实现Excel导入功能

springboot实现Excel导入功能

springboot实现Excel导入功能

3、第三步骤:实体类。

get和set方法自己生成。

public class ImportData {    

private int id;    

private String name;   

private int age;   

private Date createDate;

}

springboot实现Excel导入功能

4、第四步骤:后台controller代码编写。

controller主要分为三部分

1、引入需要的包

2、跳转到导入页面的请求

3、Excel导入请求,简单来说就是上传+excel读取

package com.example.excelimport.controller;

import com.example.excelimport.excel.ImportData;

import org.apache.poi.hssf.usermodel.HSSFDateUtil;

import org.apache.poi.hssf.usermodel.HSSFRow;

import org.apache.poi.hssf.usermodel.HSSFSheet;

import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import org.springframework.stereotype.Controller;

import org.springframework.web.bind.annotation.*;

import org.springframework.web.multipart.MultipartFile;

import javax.servlet.http.HttpServletRequest;

import java.text.SimpleDateFormat;

import java.util.ArrayList;

import java.util.List;

@Controller

public class ExcelImportController {    

@GetMapping("/toHtml")    

String test(HttpServletRequest request) {        

return "excelImport";    

}    

//处理文件上传    

@ResponseBody//返回json数据    

@RequestMapping(value = "/excelImport", method = RequestMethod.POST)    

public String uploadImg(@RequestParam("file") MultipartFile file,                            HttpServletRequest request) {        

String contentType = file.getContentType();        

String fileName = file.getOriginalFilename();        

if (file.isEmpty()) {            

return "文件为空!";        

}        

try {            

//根据路径获取这个操作excel的实例            

HSSFWorkbook wb = new HSSFWorkbook(file.getInputStream());            //根据页面index 获取sheet页            

HSSFSheet sheet = wb.getSheetAt(0);            

//实体类集合            

List<ImportData> importDatas = new ArrayList<>();            

HSSFRow row = null;            

//循环sesheet页中数据从第二行开始,第一行是标题            

for (int i = 1; i < sheet.getPhysicalNumberOfRows(); i++) {                

//获取每一行数据                

row = sheet.getRow(i);                

ImportData data = new ImportData();                

data.setId(Integer.valueOf((int) row.getCell(0).getNumericCellValue()));     data.setName(row.getCell(1).getStringCellValue());                

SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd");               data.setCreateDate(df.parse(df.format(HSSFDateUtil.getJavaDate(row.getCell(2).getNumericCellValue()))));                

data.setAge(Integer.valueOf((int) row.getCell(3).getNumericCellValue()));                importDatas.add(data);            

}            

//循环展示导入的数据,实际应用中应该校验并存入数据库            

for (ImportData imdata : importDatas) {                

SimpleDateFormat df = new SimpleDateFormat("yyyy/MM/dd hh:mm:ss");                

System.out.println("ID:"+imdata.getId()+" name:"+imdata.getName()+" createDate:"+df.format(imdata.getCreateDate())+" age:"+imdata.getAge());            

}        

} catch (Exception e) {            

e.printStackTrace();       

 }        

return "导入成功!";   

 }

}

springboot实现Excel导入功能

springboot实现Excel导入功能

springboot实现Excel导入功能

5、第五步骤:前端导入页面。

1、注意html页面存放的位置,默认要放excelimport\src\main\resources\templates\excelImport.html

如下图:

2:具体代码

<!DOCTYPE html><html lang="en"><head>    <meta charset="UTF-8">    <title>Excel导入</title></head><body><form enctype="multipart/form-data" method="post" action="/excelImport">    选择Excel表格:<input type="file" name="file"/><br/>    <input type="submit" value="上传"/></form></body></html>

springboot实现Excel导入功能

springboot实现Excel导入功能

6、第六步骤:测试。

1、打开页面

2、选择文件,并上传。

3、测试结果输出如下图所示导入成功。

springboot实现Excel导入功能

springboot实现Excel导入功能

springboot实现Excel导入功能

springboot实现Excel导入功能

声明:本网站引用、摘录或转载内容仅供网站访问者交流或参考,不代表本站立场,如存在版权或非法内容,请联系站长删除,联系邮箱:site.kefu@qq.com。
猜你喜欢