首页 > 其他分享 >com.alibaba.excel.exception.ExcelWriteDataConvertException: Can not find 'Converter' suppo

com.alibaba.excel.exception.ExcelWriteDataConvertException: Can not find 'Converter' suppo

时间:2023-08-15 13:31:55浏览次数:36  
标签:Map exception Converter excel support Excel import entry com

这个异常是由于使用阿里巴巴的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异常。请注意,在实现转换器时根据实际需求进行相应的转换逻辑。

标签:Map,exception,Converter,excel,support,Excel,import,entry,com
From: https://blog.51cto.com/u_16007699/7087854

相关文章

  • Oracle启动监听报错:The listener supports no services或出现 unknown状态解决
    1、查看$ORACLE_HOME/network/admin/listener.ora文件中的host是否正确,能不能ping通2、查看$ORACLE_HOME/network/admin/tnsnames.ora文件中的host是否与listener.ora中的一致3、查看/etc/hosts文件中的127.0.0.1是不是localhost,listener.ora中host跟这里的是否一样4、登录数......
  • 引入feign注入报错 org.springframework.beans.factory.NoSuchBeanDefinitionExceptio
    引入feign注入报错org.springframework.beans.factory.NoSuchBeanDefinitionException解决[172.16.22.215]out:Causedby:org.springframework.beans.factory.NoSuchBeanDefinitionException:Noqualifyingbeanoftype'com.test.mydock.api.FeignRemoteTestService�......
  • Spring batch document 2.1.8(supported by spring core 3.0)
    http://static.springsource.org/spring-batch/reference/html-single/index.html#configuringAJob SpringBatch-ReferenceDocumentationAuthorsLucasWard,DaveSyer,ThomasRisberg,RobertKasanicky,DanGarrette,WayneLund......
  • C# System.InvalidOperationException:“线程间操作无效: 从不是创建控件“****”的线
     在程序主入口,构造函数加载时,添加如下代码//如果捕获了对错误线程的调用,则为true;否则为falseSystem.Windows.Forms.Control.CheckForIllegalCrossThreadCalls=false;解释:多线程程序中,新创建的线程不能访问UI线程创建的窗口控件,这时如果想要访问窗口的控......
  • Spring Web : FormHttpMessageConverter
    概述FormHttpMessageConverter是SpringWeb提供的用于读写一般HTML表单数据的HttpMessageConverter实现类,也可以写multipart数据,但是不能读取multipart数据。具体来讲,FormHttpMessageConverter可以:读写application/x-www-form-urlencoded媒体类型数据:MultiValueMapMultiValueM......
  • org.springframework.context.ApplicationContextException: Failed to start bean 'd
    ##    一、报错信息org.springframework.context.ApplicationContextException:Failedtostartbean'documentationPluginsBootstrapper';nestedexceptionisjava.lang.NullPointerException具体报错信息如下:##  二、报错原因     SpringBoot2......
  • Cisdem Video Converter for Mac(视频转换工具) 7.10.0中文版
    CisdemVideoConvertermac是一款视频转换软件,它可以将各种常见格式的视频文件转换为其他格式,并提供了多种编辑和调整功能。CisdemVideoConvertermac软件特点-支持批量转换:用户可以同时转换多个视频文件,极大地提高了工作效率。-高质量输出:CisdemVideoConverter支持输出高质......
  • java.sql.SQLFeatureNotSupportedException: 这个 org.postgresql.jdbc.PgResultSet.g
    具体报错为:Errorattemptingtogetcolumn'DISEASENAME'fromresultset.Cause:java.sql.SQLFeatureNotSupportedException:这个org.postgresql.jdbc.PgResultSet.getNString(int)方法尚未被实作。;这个org.postgresql.jdbc.PgResultSet.getNString(int)方法尚未被实......
  • kettle 调用ssl异常javax.net.ssl.SSLHandshakeException: No appropriate protocol (
    javax.net.ssl.SSLHandshakeException:Noappropriateprotocol(protocolisdisabledorciphersuitesareinappropriate  调用kettle发送邮件的时候本地没问题 服务器报异常 查看很多都是要改动 D:\java\jdk\jre\lib\security 下面的 java.security文件 ......
  • 干掉 NullPointerException,这样写优雅!
    来源:blog.csdn.net/zjhred/article/details/84976734在文章的开头,先说下NPE问题,NPE问题就是,我们在开发中经常碰到的NullPointerException。假设我们有两个类,他们的UML类图如下图所示在这种情况下,有如下代码:user.getAddress().getProvince();这种写法,在user为null时,是有可能......