当前位置: 首页 > web >正文

关于如何在Springboot项目中通过excel批量导入数据

接口文档

2.5 批量导入学生账号

2.5.1 基本信息

请求路径:/admin/students/batch-import

请求方式:POST

接口描述:通过上传Excel文件批量导入学生账号信息。

2.5.2 请求参数

参数格式:multipart/form-data

参数说明:

参数名称参数类型是否必须备注
filefile包含学生信息的Excel文件。列应对应学生信息字段,如准考证号、姓名、学校等。
2.5.3 响应数据

参数格式:application/json

参数说明:

参数名类型是否必须备注
codenumber必须响应码,1 代表成功,0 代表失败
msgstring非必须提示信息
dataobject非必须返回的导入结果统计
|- successCountnumber非必须成功导入的数量
|- failureCountnumber非必须失败导入的数量
|- errorsarray非必须导入失败的记录及原因列表(可选)

响应数据样例:

{"code": 1,"msg": "部分导入成功","data": {"successCount": 98,"failureCount": 2,"errors": [{ "rowNumber": 5, "examCard": "INVALID_EXAM_CARD", "reason": "准考证号格式错误" },{ "rowNumber": 20, "examCard": "DUPLICATE_EXAM_CARD", "reason": "准考证号已存在" }]}
}

具体实现

1.导入依赖

首先在项目的maven仓库中引入poi 相关依赖:

      <!-- poi --><dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.16</version></dependency><!-- poi-ooxml--><dependency><groupId>org.apache.poi</groupId><artifactId>poi-ooxml</artifactId><version>3.16</version></dependency>

2.批量导入学生账号接口

    /*** 批量导入学生账号* @param file Excel文件* @return 导入结果*/@PostMapping(value = "/students/batch-import")@ApiOperation("批量导入学生账号")public Result<BatchImportResultVO> batchImportStudents(@ApiParam(value = "包含学生信息的Excel文件", required = true)@RequestPart("file") MultipartFile file) {BatchImportResultVO importResult = studentService.batchImportStudents(file);String message = "导入处理完成.";if (importResult.getFailureCount() > 0 && importResult.getSuccessCount() > 0) {message = "部分导入成功.";}else if (importResult.getFailureCount() > 0 && importResult.getSuccessCount() == 0) {message = "导入失败.";}else if (importResult.getFailureCount() == 0 && importResult.getSuccessCount() > 0) {message = "全部导入成功.";} else if (importResult.getSuccessCount() == 0 && importResult.getFailureCount() == 0) {message = "未导入任何数据或文件内容为空."; // More specific for no data processed}// Corrected order: data first, then messagereturn Result.success(importResult, message)
http://www.xdnf.cn/news/8075.html

相关文章:

  • Flask vs. Django:如何选择最适合你的 Web 框架?
  • 基于Scikit-learn与Flask的医疗AI糖尿病预测系统开发实战
  • 蓝桥杯 3. 涂色
  • OceanBase数据库全面指南(基础入门篇)
  • C# 实现轻量化数据库SQLite在工业中上的应用
  • TensorFlow深度学习实战(17)——主成分分析详解
  • 鞋服行业数据防泄露——企业解决方案
  • NFS服务器实验
  • 深入了解linux系统—— 文件系统
  • 物联网、云计算技术加持,助推楼宇自控系统实现智能高效管理
  • 机器学习与深度学习算法:从决策树到 GAN 的原理与 PyTorch 实现
  • 数智读书笔记系列033《软件设计的哲学(第2版)》:复杂性管理的艺术
  • Qt C++图书管理系统
  • 在Linux debian12系统上使用go语言以及excelize库处理excel数据
  • CQF预备知识:一、微积分 —— 1.2.2 函数f(x)的类型详解
  • 【力扣题目分享】二叉树专题(C++)
  • Spring开发系统时如何实现上传和下载文件
  • Java转Go日记(五十四):gin路由
  • P1833 樱花
  • 端口号详解(技术向)
  • Java之函数式接口、lambda表达式、stream流操作、Optional容器、方法引用
  • 企业级调度器LVS
  • Java读写分离实战
  • Java SpringBoot 项目中 Redis 存储 Session 具体实现步骤
  • Java阻塞队列(BlockingQueue)的使用:ArrayBlockingQueue类、LinkedBlockingQueue类
  • JVM参数详解与实战案例指南(AI)
  • BurpSuite学习安装
  • MobaXterm 解除只能保存14个session会话限制
  • 篇章十 消息持久化(二)
  • 加密软件对企业安全的帮助