将后缀是.csv文件导入数据库(两种方法)
第一种方法是提供指定路径导入(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");
}

浙公网安备 33010602011771号