[alibaba/easyexcel]当我使用一个拥有完整字段的类接受数据库的数据,导出时,使用一个精简字段的类导出,导出excel后,在有差异字段的位置没有数据。

2024-05-21 71 views
8

触发场景描述 当我使用一个拥有完整字段的类接受数据库的数据,导出时,使用一个精简字段的类导出,导出excel后,在有差异字段的位置没有数据。 触发Bug的代码

    // Web导出代码: List<WageEarningInfo> 导出Class: WageNormalEarningInfo
    List<WageEarningInfo> list = (List<WageEarningInfo>) resultMap.get("earningInfoList");
        if ((WageEarningInfoType.NORMALSALARY.getCode().equals(exportType))) {
            //ExcelUtil.writeExcel(response, list, fileName, sheetName, new WageNormalEarningInfo());
            ExcelUtil.writeExcel(response,list,fileName,sheetName, WageNormalEarningInfo.class);
        } else {
            //ExcelUtil.writeExcel(response, list, fileName, sheetName, new WageEarningInfo());
            ExcelUtil.writeExcel(response,list,fileName,sheetName, WageEarningInfo.class);
        }
    //

提示的异常或者没有达到的效果

回答

6
//WageEarningInfo 类字段
@Data
@ExcelIgnoreUnannotated
public class WageEarningInfo {

    /**
     * 收入ID
     */
    @TableId(value = "earning_info_id", type = IdType.ID_WORKER)
    private Long earningInfoId;

    /**
     * 工号
     */
    @ExcelProperty(value = "工号")
    private String empId;

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    private String name;

    /**
     * 证照类型
     */
    @ExcelProperty(value = "*证照类型")
    @NotBlank(message="证照类型不能为空")
    private String documentType;

    /**
     * 证件号码
     */
    @ExcelProperty(value = "*证照号码")
    @NotBlank(message="证照号码不能为空")
    private String documentNumber;

    /**
     * 所得项目
     */
    @ExcelProperty(value = "*所得项目")
    private String incomeItem;

    /**
     * 本期收入
     */
    @ExcelProperty(value = "*本期收入")
    @NotNull(message="本期收入不能为空")
    @Min(value = 0, message = "本期收入不能为负数")
    private BigDecimal currentEarning;

    /**
     * 本期收入
     */
    @ExcelProperty(value = "*本期收入测试")
    @NotNull(message="本期收入不能为空")
    @Min(value = 0, message = "本期收入不能为负数")
    private BigDecimal currentEarningTest;

    /**
     * 本期免税收入
     */
    @ExcelProperty(value = "本期免税收入")
    @Min(value = 0, message = "本期免税收入不能为负数")
    private BigDecimal currentDutyFreeEarning;
}
//WageNormalEarningInfo类字段
@Data
@ExcelIgnoreUnannotated
public class WageNormalEarningInfo {

    /**
     * 收入ID
     */
    @TableId(value = "earning_info_id", type = IdType.ID_WORKER)
    private Long earningInfoId;

    /**
     * 工号
     */
    @ExcelProperty(value = "工号")
    private String empId;

    /**
     * 姓名
     */
    @ExcelProperty(value = "姓名")
    private String name;

    /**
     * 证照类型
     */
    @ExcelProperty(value = "*证照类型")
    private String documentType;

    /**
     * 证件号码
     */
    @ExcelProperty(value = "*证照号码")
    private String documentNumber;

    /**
     * 本期收入测试
     */
    @ExcelProperty(value = "*本期收入测试")
    private BigDecimal currentEarningTest;

    /**
     * 本期收入
     */
    @ExcelProperty(value = "*本期收入")
    private BigDecimal currentEarning;

    /**
     * 本期免税收入
     */
    @ExcelProperty(value = "本期免税收入")
    private BigDecimal currentDutyFreeEarning;
}
6

image image image 在E这个位置无法写入数据

8

请检查 是否未传入数据。