如何实现用户的批量导入与导出

如何实现用户的批量导入与导出用户批量导入 1 添加相关依赖 在您的 Spring Boot 项目的 pom xml 文件中添加 Apache POI 依赖 以便处理 Excel 文件 dependency groupid org apache poi groupid artifactid poi artifactid dependency

大家好,我是讯享网,很高兴认识大家。

用户批量导入

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文件将会自动下载到您的计算机中。

请注意,上述代码只是一个示例,您需要根据您的实际需求进行适当的修改和调整。

小讯
上一篇 2025-01-05 21:43
下一篇 2025-02-22 09:32

相关推荐

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容,请联系我们,一经查实,本站将立刻删除。
如需转载请保留出处:https://51itzy.com/kjqy/64524.html