第一種方法是提供指定路徑導入(filePath )
/** * 讀取csv文件,批量插入到數據庫中 */ // @PostMapping("/sampleInportCsv") public AjaxResult importCsv(@RequestParam("name") String name, @RequestParam("multipartFile") MultipartFile file){ String filePath = uploadToCsv+name; if (null == file) { return AjaxResult.error("上傳文件為空"); } // String filePath = "D:/新建文件夾/新建文件夾新建文件夾新建文件夾/Exp.csv"; try { // 創建CSV讀對象 CsvReader csvReader = new CsvReader(filePath, ',', Charset.forName("GBK")); // 讀表頭 csvReader.readHeaders(); BizLisResult bizLisResult = new BizLisResult(); while (csvReader.readRecord()){ // 讀一整行 System.out.println(csvReader.getRawRecord()); String[] readRaw = csvReader.getRawRecord().split(","); if (readRaw.length == 0){ break; } bizLisResult.setOrganizationId(Long.parseLong(readRaw[1])); bizLisResult.setSampleNo(readRaw[2]); bizLisResult.setTestNo(readRaw[4]); bizLisResult.setTestName(readRaw[5]); bizLisResult.setSampleTypeCode(readRaw[6]); bizLisResult.setSampleTypeName(readRaw[7]); bizLisResult.setTestResult(readRaw[8]); // 讀這行的某一列 // System.out.println(csvReader.get("Link")); logger.info("儀器傳值入參"+bizLisResult);調用接口處理數據不用可以刪掉 // 對儀器傳回數據進行處理 bizLisResultService.uploadResult(bizLisResult);同上句 // 寫入結果信息表 if (bizLisResult.getTestNo() != null) { bizLisResultService.insertYQ(bizLisResult);同上句 }else { continue; } // bizLisResultService.insertBizLisResult(bizLisResult); } } catch (IOException e) { e.printStackTrace(); } // List<BizLisResult> list = bizLisResultService.selectBizLisResultList(bizLisResult); // List<BizLisSample> list = bizLisSampleService.getCsvFileContent(file,groupId,itemIds); // return toAjax(bizLisSampleService.excelSampleMore(list)); return AjaxResult.success("ok!"); }
第二種是根據前端傳來的 MultipartFile 來寫入數據庫
@PostMapping("/sampleInportCsv") public AjaxResult importCsv2(@RequestParam("name") String name, @RequestParam("multipartFile") MultipartFile multipartFile) { BufferedReader reader= null; try { reader = new BufferedReader(new InputStreamReader( multipartFile.getInputStream(),"GBK")); reader.readLine();//第一行信息,為標題信息,不用,如果需要,注釋掉 } catch (IOException e) { e.printStackTrace(); } String line = null; BizLisResult bizLisResult = new BizLisResult(); try { while((line=reader.readLine())!=null){ // 讀一整行 System.out.println(line); String[] readRaw = line.split(","); if (readRaw.length == 0){ break; } bizLisResult.setOrganizationId(Long.parseLong(readRaw[1])); bizLisResult.setSampleNo(readRaw[2]); bizLisResult.setTestNo(readRaw[4]); bizLisResult.setTestName(readRaw[5]); bizLisResult.setSampleTypeCode(readRaw[6]); bizLisResult.setSampleTypeName(readRaw[7]); bizLisResult.setTestResult(readRaw[8]); logger.info("儀器傳值入參"+bizLisResult);調用接口處理數據,不用就刪了 // 對儀器傳回數據進行處理 bizLisResultService.uploadResult(bizLisResult);同上句 // 寫入結果信息表 if (bizLisResult.getTestNo() != null) { bizLisResultService.insertYQ(bizLisResult);同上句 }else { continue; } } } catch (IOException e) { e.printStackTrace(); } return AjaxResult.success("ok"); }