本文是《Java中注解学习系列教程》第四篇文章也是小案例文章。

自定义注解小案例是:使用自定义注解实现excel导出。

Excel导出分析:

有表头、数据值。一般第一行是表头,从第二行开始就是数据了。而且我们可以发现,每个表头都会对于一列。

如上图中的。主键ID对应的是A列 、姓名对应的是B列、生日对应的是C列、性别对应的是D列。

我们来分析自定义主键需要定义哪些?

1:主键范围

2:列对应的中文

3:所在那一列

经过分析我们知道,Excel中每一列对应的其实就是对象中的属性。所有我们知道了:

1:自定义注解Target的范围是Filed即@Target({ElementType.FIELD})

2:自定义注解的成员变量有一个是中文名称这个字段。我们取名为:String ZHName() ;

3:还需要有个成员变量就是指定当前这个属性或者是中文(表头)位于哪一列。我们取名为: String colum();

经过上面分析,我们可以得到这个自定义注解具体了。

@Target({ElementType.FIELD})

@Retention(RetentionPolicy.RUNTIME)

public @interface ExcelAnnotation {

/**

* 导出文件的中文名称

*/

String ZHName() ;

/**

* 导出对应的列

* A、B、C...

* @return

*/

String colum();

}

接下来我们创建对象。开始测试:

一:创建POJO对象

创建用户对象:AnnotationUserPoJo

属性有:

/***注解id**/private Integer id;/***用户名**/private String name;/***性别**/private Integer Gender;

在需要的字段上使用我们自定义的ExcelAnnotation注解。

具体用法:

/*** 主键id*/@ExcelAnnotation(ZHName = "主键ID

excel导出多重表头utils_Java中注解学习系列教程-4 使用自定义注解实现excel导出...相关推荐

  1. java excel 注解_Java中注解学习系列教程-5 excel导出优化初级阶段

    在上一篇文章中,我们实现了使用自定义注解导出Excel的小案例.但是有问题的.我们发现,如果对象属性中包含了date类型或者使用了枚举类.这个时候就会出问题.我们来看看问题所在: 是不是已经看到了结果 ...

  2. @excel 注解_Java中注解学习系列教程-3

    本文是<Java中注解学习系列教程>第三篇文章 在前两篇中我们学习了注解的定义.JDK内置注解.注解分类及自定义注解的写法. 本文咱们将学习: ​ 1:自定义注解一些说明 2:自定义注解怎 ...

  3. @data注解的作用_Java中注解学习系列教程-2

    在上一篇文章中,我们讲解了:Java中注解的定义.JDK中内置注解.第三方注解. 本文是注解系列教程中的第二篇.来看看今天主要内容: ​ 1:注解的分类 2:元注解说明 3:自定义注解声明 一:注解的 ...

  4. Java中注解学习系列教程-2

    简介 在上一篇文章中,我们讲解了:Java中注解的定义.JDK中内置注解.第三方注解.本文是注解系列教程中的第二篇.来看看今天主要内容:1:注解的分类2:元注解说明3:自定义注解声明一:注解的分类注解 ...

  5. excel导出多重表头utils_java excel复杂表头和复杂数据导出

    懒得写废话了... package com.ruoyi.common.utils.poi; import com.ruoyi.framework.config.RuoYiConfig; import ...

  6. Java中注解学习系列教程-1

    前言: 我们为什么要学习注解? 注解是我们的编程更简洁明了.spring boot的流行也带动了注解.spring boot中就使用了大量的注解来减少配置.我们在使用spring boot开发时候,感 ...

  7. springboot项目中自定义注解的使用总结、java自定义注解实战(常用注解DEMO)

    初学spring的时候使用注解总觉得使用注解很神奇,加一个注解就能实现想要的功能,很好奇,也想自己根据需要写一些自己实现的自定义注解.问题来了,自定义注解到底是什么?肯定会有人和我一样有这个疑惑,我根 ...

  8. 生信宝典:生物信息学习系列教程、视频、资源

    生信的作用越来越大,想学的人越来越多,不管是为了以后发展,还是为了解决眼下的问题.但生信学习不是一朝一夕就可以完成的事情,也许你可以很短时间学会一个交互式软件的操作,却不能看完程序教学视频后就直接写程 ...

  9. OpenCV学习系列教程第五篇:测试和提高代码的效率

    Opencv-Python学习系列教程第五篇 来自opencv-python官方学习文档,本人谨做翻译和注释,以及一些自己的理解 本文由作者翻译并进行代码验证,转载请注明出处~ 官方文档请参阅:htt ...

最新文章

  1. Python基础 模块
  2. 裸奔浏览器_大概是最好用的隐私浏览器 - Firefox Focus
  3. MongoDB · 引擎特性 · MongoDB索引原理
  4. 抢红包的红包生成算法
  5. spring 面向接口编程_Spring面向方面的编程
  6. 树视图的属性与方法 c# 1614262746
  7. 第12章[12.3] Ext JSGrid中的超链接列及其功能实现
  8. Play framework(二)
  9. 201671030126 词频统计软件项目报告
  10. IDEA 常用快捷键
  11. SaaS公司投资分析时,MRR比ARR指标更有用 | 投资人说
  12. 解锁编程新姿势——键盘技巧篇
  13. 弘辽科技:如何提高客单价
  14. 利用linux命令sort和uniq求两个文件的交集并集和补集
  15. 关于移动通讯的发展史及5G的各项技术与面临的挑战阐述
  16. 2021-12-07(JZ83 剪绳子(进阶版))
  17. 【学习记录】图片局部放大
  18. QQ2009 的溢出漏洞
  19. code up练习1153: C语言3.1(error)
  20. pg批量插入_PostgreSQL实现批量插入、更新与合并操作的方法

热门文章

  1. python代码中添加环境变量
  2. django创建新的项目、App与基本配置
  3. 解决numpy报错UFuncTypeError: Cannot cast ufunc ‘add‘ output from dtype(‘x‘) to dtype(‘x‘)
  4. Linux安装以太坊geth客户端
  5. python读取与写入配置文件
  6. keil4怎么移植其他人的程序_【调试笔记】韦东山:在100ask_imx6ull上移植使用六轴传感器ICM20608...
  7. jenkins 集成java搅拌_java-Jenkins中的集成测试
  8. 如何在idea中调试spring bean
  9. (一)问候 Log4j 你好
  10. scikit-learn——快速入门