首页 > 其他分享 >EasyExcel格式化映射注解和样式注解详解

EasyExcel格式化映射注解和样式注解详解

时间:2023-04-21 20:47:05浏览次数:28  
标签:格式化 EasyExcel excel value alibaba return 注解 com

 https://blog.csdn.net/qq_44749491/article/details/127879946

一、概述

使用注解很简单,只要在对应的实体类上面加上注解即可。

也就是说使用实体类模型来读写Excel文件时,可以通过注解来控制实体类字段和Excel列之间的对应关系。
二、ExcelProperty
2.1 作用

ExcelProperty注解用于匹配excel和实体类字段之间的关系。

可以作用于字段上。

2.1 注解参数
名称 默认值 描述
value 空 用于匹配excel中的头,必须全匹配,如果有多行头,会匹配最后一行头
order Integer.MAX_VALUE 优先级高于value,会根据order的顺序来匹配实体和excel中数据的顺序
index -1 优先级高于value和order,会根据index直接指定到excel中具体的哪一列
converter 自动选择 指定当前字段用什么转换器,默认会自动选择。写的情况下只要实现com.alibaba.excel.converters.Converter#convertToExcelData(com.alibaba.excel.converters.WriteConverterContext) 方法即可
 

2.3 使用示例

@Getter
@Setter
@EqualsAndHashCode
public class DemoData {
@ExcelProperty("字符串标题")
private String title;

// 在这个字段前面加上 自定义三个字
@ExcelProperty(value = "conver的使用", converter = CustomStringStringConverter.class)
private String convert;

@ExcelProperty(value = "日期标题", index = 3)
private Date date;

@ExcelProperty(value = "数字标题", index = 5)
private Double doubleData;
}

import com.alibaba.excel.converters.Converter;
import com.alibaba.excel.converters.ReadConverterContext;
import com.alibaba.excel.converters.WriteConverterContext;
import com.alibaba.excel.enums.CellDataTypeEnum;
import com.alibaba.excel.metadata.data.WriteCellData;

/**
* 定义一个字符串转换器,需要实现Converter接口并且传递需要转换的泛型
*/
public class CustomStringStringConverter implements Converter<String> {

// 所支持的java类型
@Override
public Class<?> supportJavaTypeKey() {
return String.class;
}

// 所支持的Excel枚举类型
@Override
public CellDataTypeEnum supportExcelTypeKey() {
return CellDataTypeEnum.STRING;
}

/**
* 这里读的时候会调用
* @param context 上下文对象 可以获取当前读的单元格的文字内容
* @return 格式化后的值
*/
@Override
public String convertToJavaData(ReadConverterContext<?> context) {
return "自定义:" + context.getReadCellData().getStringValue();
}

/**
* 这里是写的时候会调用 通常情况可以不用管
* @return
*/
@Override
public WriteCellData<?> convertToExcelData(WriteConverterContext<String> context) {
return new WriteCellData<>(context.getValue());
}

}

 

@Getter
@Setter
@EqualsAndHashCode
public class DemoData {

// 忽略这个字段,不写入Excel当中
@ExcelIgnore
private String ignore;
}

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

标签:格式化,EasyExcel,excel,value,alibaba,return,注解,com
From: https://www.cnblogs.com/chuangsi/p/17341734.html

相关文章

  • 2.自定义@Excel注解实现数据Excel形式导入导出
    https://zzpc.net/content/206150.html前言这几天在学习如何使用自定义注解实现Excel格式数据导入导出,参考的还是若依框架里面的代码,由于是初学,所以照猫画虎呗,但是难受的是需要复制并根据自己项目修改作者自定义的工具类以及导入这些工具类的依赖包。由于吃了这个苦,我决定把......
  • Spring Boot中 自定义注解
    SpringBoot中自定义注解定义一个注解创建一个Java注解,可以使用@interface关键字来定义,例如:less@Target(ElementType.METHOD)@Retention(RetentionPolicy.RUNTIME)public@interfaceMyAnnotation{Stringvalue()default"";}这个注解称为MyAnnotation,并且它具......
  • redis:清空 spring boot注解式
    flushall清空打开D:\ProgramFiles\Java\Redis-x64-3.2.100\redis-cli.exeauth123456flushall  dockerdockerexec-it65e343434e6eredis-cliauth123flushall exit @Cacheable :根据方法的请求参数对其结果进行缓存参数解释examplevalue缓存的名称,在spring配置文......
  • js 时间格式化函数
    functiondateFormat(time,fmStr){constweekCN='一二三四五六日'constweekEN=['Monday','Tuesday','Wednesday','Thursday','Friday','Saturday','Sunday']letyear......
  • easyExcel导出单个文件多个sheet页-注解方式
    easyExcel注解方式导出,为什么要用注解方式?注解方式更简单、更方便,相比非注解的方式减少了大量代码。但是,注解方式不够灵活,精确度也不高,比如列宽,注解方式仅支持int类型,最大255个字符,而非注解方式就要精确的多,可以随意设置。所以,对于要求比较高的、复杂的Excel,还是推荐使用非注解......
  • 如何修复 SD 卡写保护错误,导致无法格式化 SD 卡 All In One
    如何修复SD卡写保护错误,导致无法格式化SD卡AllInOneErrorpartitioning:Error:-69830:ThisoperationrequiresanunmounteddiskerrormacOS显示SD卡状态❌solutionSD卡,写保护开关损坏了更换一个新的SD卡Adapte外壳就可以了✅原因分析:原来的A......
  • json字符串格式化工具
    publicclassJsonFormatTool{/***单位缩进字符串。*/privatestaticStringSPACE="";/***返回格式化JSON字符串。**@paramjson未格式化的JSON字符串。*@return格式化的JSON字符串。*/publicstat......
  • vscode 格式化统一配置 settings.json
    {"workbench.colorTheme":"DefaultDark+","eslint.autoFixOnSave":true,"editor.codeActionsOnSave":{"source.fixAll.eslint":true},"[javascript]":{ "......
  • js 时间格式化 与 js 时间比较 函数
    评://对Date的扩展,将Date转化为指定格式的String//月(M)、日(d)、小时(h)、分(m)、秒(s)、季度(q)可以用1-2个占位符,//年(y)可以用1-4个占位符,毫秒(S)只能用1个占位符(是1-3位的数字)//例子://(newDate()).Format("yyyy-MM-dd......
  • 记录一次使用 表达式引擎 自定义注解 还有 sql union all 实现对数据库数据提取、重组
    这样编写减少了前后端很多没必要的遍历,以及if判断并最大限度提高了代码的可变通性额外需要学习的是ORM框架下,如何接收多表(各表结构不同)操作后,sql返回的新结构的临时表问题表达式引擎用到的依赖<dependency><groupId>org.apache.commons</groupId>......