这个异常是由于使用阿里巴巴的EasyExcel库时,没有找到映射为Map类型的数据转换器所导致的。

在使用EasyExcel进行Excel文件读写时,需要指定正确的数据转换器以实现对象与Excel单元格的相互转换。对于Map类型的数据,EasyExcel需要知道如何将Map转换为Excel中的单元格数据,因此需要自定义一个转换器。

以下是一个示例的Map转换器的实现:

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.CellData;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.property.ExcelContentProperty;

import java.util.Map;

public class MapConverter implements Converter<Map<?, ?> > {

    @Override
    public Class<?> supportJavaTypeKey() {
        // 返回支持的Java类型
        return Map.class;
    }

    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        // 返回支持的Excel单元格数据类型
        return CellDataTypeEnum.STRING;
    }

    @Override
    public Map<?, ?> convertToJavaData(CellData cellData, ExcelContentProperty contentProperty,
                                       GlobalConfiguration globalConfiguration) throws Exception {
        // 根据实际需求实现将Excel中的单元格数据转换为Map的方法
        // 这里仅作示例,假设Map的键和值都是字符串类型
        String[] keyValuePairs = cellData.getStringValue().split(",");
        Map<String, String> map = new HashMap<>();
        for (String pair : keyValuePairs) {
            String[] entry = pair.split(":");
            if (entry.length == 2) {
                map.put(entry[0], entry[1]);
            }
        }
        return map;
    }

    @Override
    public CellData<String> convertToExcelData(Map<?, ?> value, ExcelContentProperty contentProperty,
                                               GlobalConfiguration globalConfiguration) throws Exception {
        // 根据实际需求实现将Map转换为Excel中的单元格数据的方法
        // 这里仅作示例,假设Map的键和值都是字符串类型
        StringBuilder sb = new StringBuilder();
        for (Map.Entry<?, ?> entry : value.entrySet()) {
            sb.append(entry.getKey()).append(":").append(entry.getValue()).append(",");
        }
        String cellValue = sb.length() > 0 ? sb.substring(0, sb.length() - 1) : "";
        return new CellData<>(cellValue);
    }
}

然后,在使用EasyExcel的时候,使用EasyExcel.write(...).registerConverter(new MapConverter()).sheet(...).doWrite(...)来注册自定义的Map转换器。

这样,就可以解决ExcelWriteDataConvertException: Can not find 'Converter' support class Map异常。请注意,在实现转换器时根据实际需求进行相应的转换逻辑。