第一種方法是提供指定路徑導入(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");
}
