当前位置: 首页 > news >正文

Easy Excel 通过【自定义批注拦截器】实现导出的【批注】功能

目录

  • Easy Excel 通过 【自定义批注拦截器】实现导出的【批注】功能
    • 需求原型:
    • 相关数据:
      • 要导出的对象字段
      • postman 格式
      • 导出对象VO
    • 自定义批注拦截器
      • 业务代码:
    • 拦截器代码解释:
      • 详细解释:
      • 格式优化:

Easy Excel 通过 【自定义批注拦截器】实现导出的【批注】功能

工作中用 Easy Excel 实现导出时,需要把一些数据以【批注】的方式实现。

Easy Excel 官网

需求原型:

要实现这个批注,因为【佣金配置】字段原本是一个对象。
对象是无法导出的,所以现在改成批注的形式来显示。

如图:

在这里插入图片描述

相关数据:

要导出的对象字段

这个是佣金字段对象,里面是三个map类型的字段。

在这里插入图片描述

postman 格式

查出来的数据大概长这样,但是 EasyExcel 不支持导出对象,所以打算把数据以【批注】的形式导出来

在这里插入图片描述

导出对象VO

这是导出数据的接收对象,这里因为无法导出对象类型的字段数据,所以我把数据改成String类型了。

在这里插入图片描述

把类型从【RiderCommissionConfigDto】改成【String】,那么导出来的数据是这样的。

在这里插入图片描述

自定义批注拦截器

业务代码:

如图解释:

1、查出来的导出数据中,【佣金设置】字段的数据类型是【RiderCommissionConfigDto】对象类型

2、在把查出来的【FinanceRiderListDto】数据类型,转成【FinanceRiderListExportVo】这个导出对象类型时,需要把【RiderCommissionConfigDto】对象转成【String】类型,然后设置进VO对象中。

导出时,涉及到【批注拦截器】的代码,用红框画出来了。

在这里插入图片描述

接着继续看代码:

这里在把数据写入到 Excel 中时,每写入一行数据,就会调用一次自定义拦截器

在这里插入图片描述

拦截器代码解释:

context 是 RowWriteHandlerContext 类型的对象,它提供了对当前行的访问。

getRow() 方法返回当前行的 Row 对象,代表当前行在 Excel 中的所有单元格。

getCell(int colIndex) 是 Row 对象的方法,用于获取指定列索引(colIndex)的单元格对象,colIndex 是列的索引,从 0 开始计数。

cell 是 Cell 类型的对象,它代表一个 Excel 单元格。如图:context.getRow().getCell(colIndex) 来获取单元格对象

详细解释:

在这里插入图片描述
在这里插入图片描述

格式优化:

在这里插入图片描述

http://www.lryc.cn/news/493630.html

相关文章:

  • 整数对最小和(Java Python JS C++ C )
  • MySQL 启动失败问题分析与解决方案:`mysqld.service failed to run ‘start-pre‘ task`
  • 谷歌浏览器Chrome打开百度很慢,其他网页正常的解决办法,试了很多,找到了适合的
  • 深度学习Pytorch中的模型保存与加载方法
  • 小红书矩阵运营:怎么通过多个账号来提升品牌曝光?
  • Llama-2-7b:vocab size:32000;embeddings:4096;hidden_layers是什么意思
  • 【moveit!】ROS学习笔记
  • 【Leetcode 每日一题 - 补卡】3259. 超级饮料的最大强化能量
  • 【人工智能】使用Python实现序列到序列(Seq2Seq)模型进行机器翻译
  • 量化交易系统开发-实时行情自动化交易-4.4.1.做市策略实现
  • Pinia之2:计数器案例、computed函数、异步action、storeToRefs函数、pinia调试
  • Microsoft Excel如何插入多行
  • Redis【1】- 如何阅读Redis 源码
  • shell查看服务器的内存和CPU,实时使用情况
  • 软件/游戏提示:mfc42u.dll没有被指定在windows上运行如何解决?多种有效解决方法汇总分享
  • 《Python基础》之函数、模块与库
  • selinux和防火墙实验
  • k8s Init:ImagePullBackOff 的解决方法
  • Spring AOP相关知识详解
  • selinux和防火墙
  • 【vue for beginner】Composition API 和 Options API 的区别
  • jmeter5.6.3安装教程
  • 关于Spring基础了解
  • 输入json 达到预览效果
  • DataLoade类与list ,iterator ,yield的用法
  • model_selection.train_test_split函数介绍
  • Springboot 读取 resource 目录下的Excel文件并下载
  • SQL EXISTS 子句的深入解析
  • 33.Java冒泡排序
  • Docker容器ping不通外网问题排查及解决