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