导入导出excel

1.导入的excel文档里面的数据
  @RequestMapping(value = "import")
  public Response importIndicatorBuilding(@RequestParam("file") MultipartFile file) throws IOException {
        ExcelReader reader = ExcelUtil.getReader(file.getInputStream());
        reader.addHeaderAlias("参数1","indicatorName");
        reader.addHeaderAlias("参数2","indicatorCode");
        reader.addHeaderAlias("参数3","landAreaName");
        reader.addHeaderAlias("参数4","projectName");
        reader.addHeaderAlias("参数5","planStageName");
        reader.addHeaderAlias("参数6","buildingName");
        ProjectsMdmprojectinfoDto param = new ProjectsMdmprojectinfoDto();
        List<IndicatorBuildingDto> studentList = reader.readAll(IndicatorBuildingDto.class);
        try {
            this.preCheckData(studentList);
        }catch (RuntimeException rx){
            log.error("导入异常,{}", rx);
        }catch (Exception e){
            log.error("导入异常,{}", e);
        }
        return Response.success();
    }
2.导出excel
  @PostMapping(value ="/export",produces = "application/json;charset=UTF-8")
    public Response export(@RequestParam(value = "current", defaultValue = "1") @ApiParam(value = "页码,从1开始") long current,
                                        @RequestParam(value = "size", defaultValue = "20") @ApiParam(value = "行数") 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","参数1");
        writer.addHeaderAlias("indicatorCode","参数2");
        writer.addHeaderAlias("landAreaName","参数3");
        writer.addHeaderAlias("projectName","参数4");
        writer.addHeaderAlias("planStageName","参数5");
        writer.addHeaderAlias("buildingName","参数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("导出异常:{}",e);
        } finally {
            writer.close();
        }
        return Response.success(result);
    }
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容