JAVA easypoi處理縱向合並一對多


這樣的數據結構導入
注意: 模板多的一側 標題要加下划線 _

        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-base</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-web</artifactId>
            <version>4.1.0</version>
        </dependency>
        <dependency>
            <groupId>cn.afterturn</groupId>
            <artifactId>easypoi-annotation</artifactId>
            <version>4.1.0</version>
        </dependency>

子集合 @ExcelCollection此注解用於集合這種的多行

@ExcelTarget("ExportGroupDto")
public class ClassGroupNameDto {
    @Excel(name = "名稱")
    private String className;

    public String getClassName() {
        return className;
    }

    public void setClassName(String className) {
        this.className = className;
    }
}

主數據 @Excel這個是必不可少的,主要是要有一個參數設置needMerge = true, mergeVertical = true

public class ExportGroupDto {
    @Excel(name = "年級", mergeVertical = true, needMerge = true)
    private String yearClassName;

    @ExcelCollection(name = "中隊")
    private List<ClassGroupNameDto> classNameList;

    public String getYearClassName() {
        return yearClassName;
    }

    public void setYearClassName(String yearClassName) {
        this.yearClassName = yearClassName;
    }

    public List<ClassGroupNameDto> getClassNameList() {
        return classNameList;
    }

    public void setClassNameList(List<ClassGroupNameDto> classNameList) {
        this.classNameList = classNameList;
    }
}

導入調用controller

@PostMapping("/upload")
    public R upload(@RequestParam("file") MultipartFile multipartFile) {
            ExcelImportResult<ExportGroupDto> result = null;
            try {
                ImportParams params = new ImportParams();
                // 表頭設置為1行
                params.setHeadRows(1);
               // 設置開始的sheet
                params.setStartSheetIndex(0);
                // 標題行設置為0行,默認是0,可以不設置
                params.setTitleRows(0);
                result = ExcelImportUtil.importExcelMore(multipartFile.getInputStream(),
                        ExportGroupDto.class, params);
            } catch (Exception e) {
                logger.info(e.getMessage());
                return R.fail("導入失敗!");
            }
            String sheetName = result.getWorkbook().getSheetName(i);
            List<ExportGroupDto> list = result.getList();
            String message = yxhGroupService.importGroup(sheetName, list);
       

        return R.success();
    }


免責聲明!

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



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