將后綴是.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");
    }

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM