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

iexcel-excel 大文件读取和写入-04-order 指定列顺序

excel 系列

Excel Export 踩坑注意点+导出方案设计

基于 hutool 的 EXCEL 优化实现

iexcel-excel 大文件读取和写入,解决 excel OOM 问题-01-入门介绍

iexcel-excel 大文件读取和写入-02-Excel 引导类简介

iexcel-excel 大文件读取和写入-03-@ExcelField 注解介绍

iexcel-excel 大文件读取和写入-04-order 指定列顺序

iexcel-excel 大文件读取和写入-05-file bytes 获取文件字节信息

Aapche POI java excel 操作工具包入门

java 字段重排序

一般实现都是基于 java 反射直接获取 Field 字段列表,一般而言这个顺序是固定的。

可是有时候,比如为了内存对齐,jvm 可能会对 Field 信息进行调整,从而导致顺序的不确定性。

这种概率很低,但是还是会发生。

可能你面对的是苛刻的产品,也可能是严格的客户,也可能是对技术的追求,这个问题一定要解决。

问题就是用来解决的。

order 属性

方法定义

/*** 指定顺序编号* 解释:默认是按照 Field 信息直接反射处理的,但是有一种情况反射的字段顺序可能会是错乱的。* 如进行内存对齐的时候,这个概率虽然很低,但是可以通过指定 order 属性来处理。* (1)order 值越小,生成 excel 列越靠前。* (2)无注解的字段默认 order=0* @return 顺序编号* @since 0.0.5*/
int order() default 0;

解决方案

我们选择比较简单的一种方式,通过为 @ExcelField 指定一个 order 属性。

通过指定 order 属性来决定 excel 生成结果的顺序。

为了和原来兼容,默认 order=0,不指定注解时,默认 order=0。

使用简介

参见 ExcelBsOrderTest 测试类。

对象定义

public class UserFieldOrdered {@ExcelField(headName = "姓名", order = 1)private String name;@ExcelField(headName = "年龄", order = 2)private int age;@ExcelField(headName = "地址", order = 0)private String address;//Getter/Setter/toString()
}

测试代码

final String filePath = PathUtil.getAppTestResourcesPath()+"/userOrdered.xls";
List<UserFieldOrdered> models = buildUserList();
ExcelBs.newInstance(filePath).write(models);

生成 excel 效果

地址	    姓名	  年龄
china	one	  10

其他

不知道基于 ASM 字节码直接操作结果如何,后续会做相关的优化。

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • Spring源码学习笔记之@Async源码
  • 智能番茄成熟度评估:基于深度学习的自动检测系统
  • AI推理硬件成本分析:AMD Instinct MI300X与Nvidia GPU比较
  • 商品中心关于缓存热key的解决方案
  • web、http协议、apache服务、nginx服务
  • 汇舟问卷:轻松入门国外问卷调查工作室
  • springboot驾校管理系统-计算机毕业设计源码55471
  • 【Dash】Dash 应用的布局 app.layout
  • 【OSCP系列】OSCP靶机-BTRsys-2.1(原创)
  • Python写UI自动化--playwright(点击操作)
  • Qt基础 | 主机信息查询 | QHostInfo的介绍和使用 | QNetworkInterface的介绍和使用
  • React Native在移动端落地实践
  • 《动手做科研 》| 03. 如何阅读人工智能研究论文
  • matlab 小数取余 rem 和 mod有 bug
  • 需求跟踪矩阵:项目管理的“指南针”
  • 分享一款快速APP功能测试工具
  • Bootstrap JS插件Alert源码分析
  • JavaScript/HTML5图表开发工具JavaScript Charts v3.19.6发布【附下载】
  • LintCode 31. partitionArray 数组划分
  • Mithril.js 入门介绍
  • Netty+SpringBoot+FastDFS+Html5实现聊天App(六)
  • SAP云平台里Global Account和Sub Account的关系
  • 包装类对象
  • 搞机器学习要哪些技能
  • 浅谈Kotlin实战篇之自定义View图片圆角简单应用(一)
  • 实现简单的正则表达式引擎
  • 实战|智能家居行业移动应用性能分析
  • 适配mpvue平台的的微信小程序日历组件mpvue-calendar
  • 我感觉这是史上最牛的防sql注入方法类
  • 优化 Vue 项目编译文件大小
  • 由插件封装引出的一丢丢思考
  • ​LeetCode解法汇总2808. 使循环数组所有元素相等的最少秒数
  • #pragma 指令
  • #单片机(TB6600驱动42步进电机)
  • (~_~)
  • (2024,LoRA,全量微调,低秩,强正则化,缓解遗忘,多样性)LoRA 学习更少,遗忘更少
  • (多级缓存)缓存同步
  • (理论篇)httpmoudle和httphandler一览
  • (南京观海微电子)——I3C协议介绍
  • (贪心 + 双指针) LeetCode 455. 分发饼干
  • (转)ABI是什么
  • (转)AS3正则:元子符,元序列,标志,数量表达符
  • (转)C#开发微信门户及应用(1)--开始使用微信接口
  • *1 计算机基础和操作系统基础及几大协议
  • .net 4.0发布后不能正常显示图片问题
  • .net core webapi 部署iis_一键部署VS插件:让.NET开发者更幸福
  • .NET Micro Framework初体验(二)
  • .NET MVC之AOP
  • .NET 使用 ILMerge 合并多个程序集,避免引入额外的依赖
  • .Net插件开发开源框架
  • .net和php怎么连接,php和apache之间如何连接
  • .NET开发者必备的11款免费工具
  • .net生成的类,跨工程调用显示注释
  • .Net小白的大学四年,内含面经
  • .Net中ListT 泛型转成DataTable、DataSet