Skip to content

单sheet导出时,数据长度为空没有导出操作 #77

Open
@iwangbowen

Description

@iwangbowen

问题说明

查看源码,定义了SingleSheetWriteHandlerManySheetWriteHandler来进行相应导出操作,里面的support方法来判断使用哪一个类。由于数据长度为零,两次support调用都返回false,导致没有文件导出。

数据为空时不进行导出,不太符合一般的业务逻辑,这种情况下导出空的文件更符合预期。希望维护者能更新这一块的逻辑,或让用户通过参数自定义导出行为。

临时解决方法

如果想临时修改这部分逻辑,可以实现自定义的SingleSheetWriteHandler,修改默认support实现。

代码示例

@Component
public class MySingleSheetWriteHandler extends SingleSheetWriteHandler {

    public MySingleSheetWriteHandler(ExcelConfigProperties configProperties,
            ObjectProvider<List<Converter<?>>> converterProvider, WriterBuilderEnhancer excelWriterBuilderEnhance) {
        super(configProperties, converterProvider, excelWriterBuilderEnhance);
    }

    @Override
    public boolean support(Object obj) {
        if (obj instanceof List) {
            List<?> objList = (List<?>) obj;

            if (objList.isEmpty()) {
                return true;
            }

            return !(objList.get(0) instanceof List);
        } else {
            throw new ExcelException("@ResponseExcel 返回值必须为List类型");
        }
    }

}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions