用户批量导入
1.添加相关依赖:在您的Spring Boot项目的pom.xml
文件中添加Apache POI依赖,以便处理Excel文件
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
2.创建实体类:创建一个用户实体类,用于表示导入的用户数据。例如:
public class User {
private String name;
private String email;
// 其他属性和 getter/setter 方法
}
3.创建 Excel 导入服务:创建一个服务类,用于处理 Excel 文件的导入。例如:
import org.apache.poi.ss.usermodel.*;
import org.springframework.stereotype.Service;
import java.io.File;
import java.io.FileInputStream;
import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
@Service
public class ExcelImportService {
public List<User> importUsers(File file) throws Exception {
List<User> users = new ArrayList<>();
FileInputStream fis = new FileInputStream(file);
Workbook workbook = WorkbookFactory.create(fis);
Sheet sheet = workbook.getSheetAt(0);
Iterator<Row> rowIterator = sheet.iterator();
while (rowIterator.hasNext()) {
Row row = rowIterator.next();
Cell nameCell = row.getCell(0);
Cell emailCell = row.getCell(1);
String name = nameCell.getStringCellValue();
String email = emailCell.getStringCellValue();
User user = new User();
user.setName(name);
user.setEmail(email);
users.add(user);
}
workbook.close();
fis.close();
return users;
}
}
4.创建控制器:创建一个控制器类,用于处理导入用户的请求。例如:
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestParam;
import org.springframework.web.bind.annotation.RestController;
import org.springframework.web.multipart.MultipartFile;
import java.io.File;
import java.util.List;
@RestController
public class UserController {
@Autowired
private ExcelImportService excelImportService;
@PostMapping("/users/import")
public String importUsers(@RequestParam("file") MultipartFile multipartFile) {
try {
File file = File.createTempFile("temp", null);
multipartFile.transferTo(file);
List<User> users = excelImportService.importUsers(file);
// 处理导入的用户数据,例如保存到数据库
return "导入成功";
} catch (Exception e) {
e.printStackTrace();
return "导入失败";
}
}
}
5.配置文件上传:在 application.properties
或 application.yml
中配置文件上传的相关属性。例如:
spring.servlet.multipart.max-file-size=10MB
spring.servlet.multipart.max-request-size=10MB
6.创建前端页面:创建一个包含文件上传表单的前端页面,用于选择并上传 Excel 文件。例如:
<form action="/users/import" method="post" enctype="multipart/form-data">
<input type="file" name="file" accept=".xlsx, .xls">
<button type="submit">导入</button>
</form>
以上是一个简单的示例,您可以根据实际需求进行修改和扩展。在实际应用中,您可能还需要验证和处理 Excel 文件的格式、字段映射、错误处理等。
用户的批量导出
1.添加相关依赖:在您的Spring Boot项目的pom.xml
文件中添加Apache POI依赖,以便处理Excel文件
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi</artifactId>
<version>4.1.2</version>
</dependency>
2.创建一个用于导出用户的服务类:在您的项目中创建一个服务类,用于处理用户数据并导出Excel文件
@Service
public class UserService {
public void exportUsersToExcel(List<User> userList, HttpServletResponse response) {
try {
// 创建工作簿
Workbook workbook = new XSSFWorkbook();
// 创建工作表
Sheet sheet = workbook.createSheet("User List");
// 创建表头
Row headerRow = sheet.createRow(0);
headerRow.createCell(0).setCellValue("ID");
headerRow.createCell(1).setCellValue("Name");
headerRow.createCell(2).setCellValue("Email");
// 添加其他字段
// 填充数据
int rowNum = 1;
for (User user : userList) {
Row row = sheet.createRow(rowNum++);
row.createCell(0).setCellValue(user.getId());
row.createCell(1).setCellValue(user.getName());
row.createCell(2).setCellValue(user.getEmail());
// 添加其他字段
}
// 设置响应头
response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
response.setHeader("Content-Disposition", "attachment; filename=users.xlsx");
// 将工作簿写入响应流
OutputStream outputStream = response.getOutputStream();
workbook.write(outputStream);
outputStream.close();
} catch (Exception e) {
e.printStackTrace();
}
}
}
3.创建一个用于处理导出请求的控制器类:在您的项目中创建一个控制器类,用于处理导出用户的请求
@RestController
public class UserController {
@Autowired
private UserService userService;
@GetMapping("/users/export")
public void exportUsers(HttpServletResponse response) {
List<User> userList = // 获取用户列表数据
userService.exportUsersToExcel(userList, response);
}
}
4.配置导出请求的路由:在您的项目中配置导出请求的路由
@Configuration
public class WebConfig implements WebMvcConfigurer {
@Override
public void addCorsMappings(CorsRegistry registry) {
registry.addMapping("/**").allowedOrigins("*").allowedMethods("*");
}
@Override
public void addResourceHandlers(ResourceHandlerRegistry registry) {
registry.addResourceHandler("/static/**").addResourceLocations("classpath:/static/");
}
@Override
public void addViewControllers(ViewControllerRegistry registry) {
registry.addRedirectViewController("/", "/index.html");
}
}
5.启动应用程序并访问导出用户的URL:启动您的Spring Boot应用程序,并通过浏览器或其他工具访问导出用户的URL(例如:http://localhost:8080/users/export)。
导出的Excel文件将会自动下载到您的计算机中。
请注意,上述代码只是一个示例,您需要根据您的实际需求进行适当的修改和调整。