EasyExcel自定义字段对象转换器支持转换实体和集合实体

这篇具有很好参考价值的文章主要介绍了EasyExcel自定义字段对象转换器支持转换实体和集合实体。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1. 实现ObjectConverter

package com.tophant.cloud.common.excel.converters;

import cn.hutool.json.JSONUtil;
import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.GlobalConfiguration;
import com.alibaba.excel.metadata.data.ReadCellData;
import com.alibaba.excel.metadata.data.WriteCellData;
import com.alibaba.excel.metadata.property.ExcelContentProperty;

import java.lang.reflect.Type;

/**
 * 对象转换器
 * 支持转换字段类型为自定义实体,List<实体>,List<String>,Map<String,实体>等
 *
 * @author wan.fei
 * @date 2023/08/26
 */
public class ObjectConverter implements Converter<Object> {

    @Override
    public Class<?> supportJavaTypeKey() {
        return Object.class;
    }

    @Override
    public CellDataTypeEnum supportExcelTypeKey() {
        return CellDataTypeEnum.STRING;
    }

    /**
     * 转换从excel中读取的数据为ExcelVO中定义的字段类型(自定义实体,List<实体>,List<String>,Map<String,实体>等)
     *
     * @param cellData            单元格数据
     * @param contentProperty     内容属性
     * @param globalConfiguration 全局配置
     * @return {@link Object}
     * @throws Exception 异常
     */
    @Override
    public Object convertToJavaData(ReadCellData cellData, ExcelContentProperty contentProperty, GlobalConfiguration globalConfiguration) throws Exception {
        String stringValue = cellData.getStringValue();
        // 获取定义的实体字段的实际类型,包括泛型参数信息
        Type genericType = contentProperty.getField().getGenericType();
        return JSONUtil.toBean(stringValue, genericType, false);
    }

    /**
     * 转换数据为json字符串,写入到excel文件
     *
     * @param value               价值
     * @param contentProperty     内容属性
     * @param globalConfiguration 全局配置
     * @return {@link WriteCellData}<{@link ?}>
     * @throws Exception 异常
     */
    @Override
    public WriteCellData<?> convertToExcelData(Object value, ExcelContentProperty contentProperty,
                                               GlobalConfiguration globalConfiguration) throws Exception {
        String json = JSONUtil.toJsonStr(value);
        return new WriteCellData<String>(json);
    }
}

2. 使用

EasyExcel自定义字段对象转换器支持转换实体和集合实体,easyexcel,java

3. 测试

3.1 导出excel

手动添加一些数据
EasyExcel自定义字段对象转换器支持转换实体和集合实体,easyexcel,java
导出
EasyExcel自定义字段对象转换器支持转换实体和集合实体,easyexcel,java
写入excel转换成功

3.2 导入excel

将上面生成的excel文件导入
EasyExcel自定义字段对象转换器支持转换实体和集合实体,easyexcel,java
读取excel数据并转换成功文章来源地址https://www.toymoban.com/news/detail-680054.html

到了这里,关于EasyExcel自定义字段对象转换器支持转换实体和集合实体的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Spring5学习随笔-生命周期、自定义类型转换器、后置处理Bean

    学习视频:【孙哥说Spring5:从设计模式到基本应用到应用级底层分析,一次深入浅出的Spring全探索。学不会Spring?只因你未遇见孙哥】 指的是一个对象创建、存活、消亡的一个完整过程 由Spring负责对象的创建、存活、销毁,了解生命周期,有利于我们使用好Spring为我们创建

    2024年02月05日
    浏览(67)
  • 【SpringBoot笔记35】SpringBoot自定义Converter转换器和Formatter格式化器

    这篇文章,主要介绍SpringBoot如何自定义Converter转换器和Formatter格式化器。 目录 一、数据转换器Converter 1.1、自定义Converter转换器 1.2、配置自定义的Converter

    2024年02月15日
    浏览(47)
  • Spring MVC获取参数和自定义参数类型转换器及编码过滤器

    目录   一、使用Servlet原生对象获取参数 1.1 控制器方法 1.2 测试结果 二、自定义参数类型转换器 2.1 编写类型转换器类 2.2 注册类型转换器对象  2.3 测试结果  三、编码过滤器 3.1 JSP表单 3.2 控制器方法 3.3 配置过滤器 3.4 测试结果  往期专栏文章相关导读  1. Maven系列专

    2024年02月10日
    浏览(64)
  • Spring boot之WEB 开发-静态资源访问--自定义转换器--处理JSON--内容协商

    在线文档: https://docs.spring.io/spring-boot/docs/current/reference/html/features.html#features.developing-web-applications 1. 只要静态资源放在类路径下: /static 、/public 、/resources 、/META-INF/resources可以被直接访问- 对应文件WebProperties.java 2. 常见静态资源:JS、CSS 、图片(.jpg .png .gif .bmp .svg)、字体

    2024年02月09日
    浏览(58)
  • 前端处理后端传来的Long型数据精度丢失的问题--对象转换器Jackson0bjectMapper

    1、问题描述 前端提交参数 后端处理 前端js对long型数据进行处理时丢失精度(只能保证16位),导致提交的id和数据库中的id不一致。 2、 问题实现 如何解决这个问题? 我们可以在服务端给页面响应json数据时进行处理,将long型数据统一转为String字符串 3、具体代码实现–对象

    2024年02月16日
    浏览(84)
  • 最全的视频转换器工具清单,这18款免费视频格式转换器记得收藏

    审查和比较具有功能和定价的最佳视频转换器软件。从这个顶级付费和免费在线视频转换器工具列表中选择,以快速轻松地转换任何视频: 什么是视频转换器? 视频转换工具允许您将视频从一种格式转换为另一种格式。第一个商业上成功的视频格式是 Quad,它于 1956 年推出。

    2023年04月08日
    浏览(112)
  • 在线PDF格式转换器推荐,小圆象PDF转换器满足您的办公需求

    作为上班族,我们都知道在办公应用中经常使用PDF文件。PDF具有较高的内容安全性,并且可以在多种设备上打开和浏览而不会出现格式混乱的问题。然而,PDF文件的一个短板是其不易编辑。通常情况下,我们需要将PDF文件转换为Word文档,以便提取其中的文字内容或进行格式编

    2024年02月11日
    浏览(60)
  • 【图像增强器和转换器】Winxvideo AIAI 驱动的视频/图像增强器和转换器软件。

    Winxvideo AI,以前称为WinX HD Video Converter Deluxe,是一款利用尖端深度学习技术的高级软件工具包。它提供了一套全面的工具,用于放大、稳定、转换、压缩、录制和编辑 4K/8K/HDR 视频。 AI 驱动的功能通过全面的 GPU 加速确保影院级质量。 Winxvideo AI 提供了一套强大且易于使用的视

    2024年02月20日
    浏览(45)
  • 电源转换器类型

    1根据转换的形式分类,可分为: AC-AC(交流-交流)转换器:如交流电源变压器、变频器等。 AC-DC(交流-直流)转换器:整流器。 DC-DC(直流-直流)转换器。 DC-AC(直流-交流)转换器:逆变器。 2 根据转换的方法分类,可分为: 线性电源:使用工作在线性区的功率器件调整

    2024年02月08日
    浏览(53)
  • RabbitMQ消息转换器

    在SpringAMQP的发送方法中,发送消息和接受消息的类型都是Object,也就是说,我们可以发送任意对象类型的消息, SpringAMQP都会帮我们把发送的消息序列化为字节后再进行发送 。下面,我们可以演示一下: 假设我们现在有个User类,如下(切记一定要实现Serializable接口,才能被

    2024年02月05日
    浏览(58)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包