接口文檔
2.5 批量導入學生賬號
2.5.1 基本信息
請求路徑:/admin/students/batch-import
請求方式:POST
接口描述:通過上傳Excel文件批量導入學生賬號信息。
2.5.2 請求參數
參數格式:multipart/form-data
參數說明:
參數名稱 | 參數類型 | 是否必須 | 備注 |
---|---|---|---|
file | file | 是 | 包含學生信息的Excel文件。列應對應學生信息字段,如準考證號、姓名、學校等。 |
2.5.3 響應數據
參數格式:application/json
參數說明:
參數名 | 類型 | 是否必須 | 備注 |
---|---|---|---|
code | number | 必須 | 響應碼,1 代表成功,0 代表失敗 |
msg | string | 非必須 | 提示信息 |
data | object | 非必須 | 返回的導入結果統計 |
|- successCount | number | 非必須 | 成功導入的數量 |
|- failureCount | number | 非必須 | 失敗導入的數量 |
|- errors | array | 非必須 | 導入失敗的記錄及原因列表(可選) |
響應數據樣例:
{"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)