Workbook workbook = ExcelExportUtil.exportExcel(params, clazz, dataset);

目前情况:当 clazz 位置,也就是 ExcelExportUtil.exportExcel 方法第二个参数为 class 时,数据集必须为对象集合。原因及优化代码如下

问题出现代码位置 cn.afterturn.easypoi.excel.export.base.ExportCommonService#getExcelField

 public Object getCellValue(ExcelExportEntity entity, Object obj) throws Exception {
        Object value;
        // 如果在导出的时候传入的参数是 class ,这里的数据对象又是 map 的时候,则无法映射。通过根据 class 对象组装 ExcelExportEntity 的时候将对象的字段名作为数据的 key 来解决
        if (obj instanceof Map) {
            value = ((Map<?, ?>) obj).get(entity.getKey());
        } else {
            // 考虑直接用对象导出只能每次获取值的办法
            if (entity.getMethods() == null && entity.getMethod() == null) {
                value = PoiPublicUtil.getParamsValue(entity.getKey().toString(), obj);
            } else {
                value = entity.getMethods() != null ? getFieldBySomeMethod(entity.getMethods(), obj)
                        : entity.getMethod().invoke(obj, new Object[]{});
            }
        }
        ····
        ····
}

解决代码见提交记录