導(dǎo)入導(dǎo)出excel

1.導(dǎo)入的excel文檔里面的數(shù)據(jù)
  @RequestMapping(value = "import")
  public Response importIndicatorBuilding(@RequestParam("file") MultipartFile file) throws IOException {
        ExcelReader reader = ExcelUtil.getReader(file.getInputStream());
        reader.addHeaderAlias("參數(shù)1","indicatorName");
        reader.addHeaderAlias("參數(shù)2","indicatorCode");
        reader.addHeaderAlias("參數(shù)3","landAreaName");
        reader.addHeaderAlias("參數(shù)4","projectName");
        reader.addHeaderAlias("參數(shù)5","planStageName");
        reader.addHeaderAlias("參數(shù)6","buildingName");
        ProjectsMdmprojectinfoDto param = new ProjectsMdmprojectinfoDto();
        List<IndicatorBuildingDto> studentList = reader.readAll(IndicatorBuildingDto.class);
        try {
            this.preCheckData(studentList);
        }catch (RuntimeException rx){
            log.error("導(dǎo)入異常,{}", rx);
        }catch (Exception e){
            log.error("導(dǎo)入異常,{}", e);
        }
        return Response.success();
    }
2.導(dǎo)出excel
  @PostMapping(value ="/export",produces = "application/json;charset=UTF-8")
    public Response export(@RequestParam(value = "current", defaultValue = "1") @ApiParam(value = "頁(yè)碼,從1開(kāi)始") long current,
                                        @RequestParam(value = "size", defaultValue = "20") @ApiParam(value = "行數(shù)") long size,
                                        @RequestBody IndicatorBuilding indicatorBuilding ) {

        Map<String,String> result = new HashMap<>();
        IPage<IndicatorBuilding> page = new Page<>(current, size);
        QueryWrapper<IndicatorBuilding> wrapper = new QueryWrapper<>();
        wrapper.eq("status", "1" );
        if (StringUtils.isNotEmpty(indicatorBuilding.getIndicatorName())){
            wrapper.eq("indicator_name",indicatorBuilding.getIndicatorName());
        }
        if (StringUtils.isNotEmpty(indicatorBuilding.getIndicatorCode())){
            wrapper.eq("indicator_code",indicatorBuilding.getIndicatorCode());
        }
        wrapper.lambda().orderByDesc(IndicatorBuilding::getCreateTime);
        indicatorBuildingService.page(page,wrapper);
        List<IndicatorBuilding> records = page.getRecords();
        List<IndicatorBuildingDto> dtoList = new ArrayList<>();
        records.stream().forEach( p ->{
            IndicatorBuildingDto dto = new IndicatorBuildingDto();
            BeanUtil.copyProperties(p,dto);
            dtoList.add(dto);
        });

        ExcelWriter writer = ExcelUtil.getWriter();
        writer.addHeaderAlias("indicatorName","參數(shù)1");
        writer.addHeaderAlias("indicatorCode","參數(shù)2");
        writer.addHeaderAlias("landAreaName","參數(shù)3");
        writer.addHeaderAlias("projectName","參數(shù)4");
        writer.addHeaderAlias("planStageName","參數(shù)5");
        writer.addHeaderAlias("buildingName","參數(shù)6");
        writer.autoSizeColumn(5);
        writer.write(dtoList, true);
        try {
            //生成excel
            String fileId = UUID.randomUUID().toString().toUpperCase().replaceAll("-", "");
            DateFormat df = new SimpleDateFormat("yyyyMMdd");
            Date now = new Date();
            String dateStr = df.format(now);

            String path = "/excel/tmp/" + dateStr + "/" + fileId + ".xlsx";
            File file = FileUtil.createFile(path, absolutePath);
            OutputStream os =  new BufferedOutputStream(new FileOutputStream(file));
            writer.flush(os, true);
            os.flush();
            CofUploadFile cofUploadFile = new CofUploadFile();
            cofUploadFile.setFileId(fileId);
            String fileName = "表名"+".xlsx";
            cofUploadFile.setFileName(fileName);
            cofUploadFile.setFilePath(file.getAbsolutePath());
            cofUploadFile.setFileSize(file.length());
            cofUploadFile.setFileContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet");
            cofUploadFile.setSaveType("1");
            uploadFileService.saveFile(cofUploadFile);
            result.put("fileId", fileId);
        } catch (IOException e) {
            log.error("導(dǎo)出異常:{}",e);
        } finally {
            writer.close();
        }
        return Response.success(result);
    }
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書(shū)系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容