简介
在Java开发中,Excel的操作是非常常见的需求之一,而Spring Boot框架通过引入Apache POI
库,提供了一种简洁高效的方式来实现Excel的导入和导出功能。本文将介绍如何使用Spring Boot实现最简单的多sheet表的Excel导入和导出。
导入Excel
添加依赖
首先,在pom.xml
文件中添加以下依赖:
<dependencies>
<!-- Spring Boot Web Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Apache POI -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
</dependencies>
创建实体类
创建一个User
实体类,用于存储Excel中的数据:
public class User {
private String name;
private int age;
// 省略getter和setter方法
}
编写Controller
创建一个UserController
控制器,接收并处理Excel文件的导入请求:
@RestController
public class UserController {
@PostMapping("/import")
public String importExcel(@RequestParam("file") MultipartFile file) {
try {
Workbook workbook = WorkbookFactory.create(file.getInputStream());
// 获取第一个sheet
Sheet sheet = workbook.getSheetAt(0);
List<User> userList = new ArrayList<>();
// 遍历每一行
for (Row row : sheet) {
User user = new User();
user.setName(row.getCell(0).getStringCellValue());
user.setAge((int) row.getCell(1).getNumericCellValue());
userList.add(user);
}
// 处理导入的数据
// ...
return "导入成功";
} catch (IOException e) {
return "导入失败:" + e.getMessage();
}
}
}
编写前端页面
创建一个表单页面,用于选择并上传Excel文件:
<!DOCTYPE html>
<html>
<head>
<title>Excel导入</title>
<meta charset="UTF-8">
</head>
<body>
<form action="/import" method="POST" enctype="multipart/form-data">
<input type="file" name="file" accept=".xlsx, .xls">
<button type="submit">导入</button>
</form>
</body>
</html>
导出Excel
添加依赖
同样,在pom.xml
文件中添加以下依赖:
<dependencies>
<!-- Spring Boot Web Starter -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<!-- Apache POI -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-ooxml</artifactId>
<version>4.1.2</version>
</dependency>
</dependencies>
编写Controller
创建一个UserController
控制器,接收并处理Excel文件的导出请求:
@RestController
public class UserController {
@GetMapping("/export")
public void exportExcel(HttpServletResponse response) {
try {
Workbook workbook = new XSSFWorkbook();
// 创建第一个sheet
Sheet sheet1 = workbook.createSheet("Sheet1");
// 创建第二个sheet
Sheet sheet2 = workbook.createSheet("Sheet2");
// 向每个sheet中添加数据
// ...
response.setHeader("Content-Disposition", "attachment; filename=users.xlsx");
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
workbook.write(response.getOutputStream());
workbook.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
编写前端页面
创建一个下载链接,用于触发Excel文件的导出:
<!DOCTYPE html>
<html>
<head>
<title>Excel导出</title>
<meta charset="UTF-8">
</head>
<body>
<a href="/export">导出Excel</a>
</body>
</html>
结语
本文介绍了如何使用Spring Boot实现最简单的多sheet表的Excel导入和导出功能。通过Apache POI
库,我们可以方便地读取和写入Excel文件。希望本文对你的学习和工作有所帮助,谢谢阅读!
本文来自极简博客,作者:冰山美人,转载请注明原文链接:Springboot Excel最简单的多sheet表导入导出