gu.sql2java.excel.annotations.ExcelSheet Maven / Gradle / Ivy
package gu.sql2java.excel.annotations;
import java.lang.annotation.ElementType;
import java.lang.annotation.Repeatable;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;
import java.math.BigDecimal;
import gu.sql2java.excel.CustomBeanParser;
/**
* 定义导出Excel 表数据的全局配置注解
*
* @author guyadong
*/
@Retention(RetentionPolicy.RUNTIME)
@Target({ElementType.METHOD,ElementType.TYPE})
@Repeatable(ExcelSheets.class)
public @interface ExcelSheet
{
/** excel Sheet名字 */
public String sheetName() default "exportedExcel";
/**
* 导出的文件名前缀
*/
public String fileNamePrefix() default "";
/** excel Sheet 标题 */
public String title() default "";
/**
* 标题字体名
*/
public String titleFontName() default "Calibri";
/**
* 标题字体高度
*/
public short titleFontHeight() default 32;
/**
* 标题字体颜色,参见 {@link org.apache.poi.ss.usermodel.IndexedColors}
*/
public String titleFontColor() default "BLACK";
/**
* 标题单元背景填充颜色,参见 {@link org.apache.poi.ss.usermodel.IndexedColors}
*/
public String titleFillColor() default "WHITE";
/**
* 标题对齐水平方式
*/
public String titleHorizontalAlign() default "CENTER";
/**
* 首行(字段名)字体名
*/
public String headerFontName() default "Calibri";
/**
* 首行(字段名)字体高度
*/
public short headerFontHeight() default 16;
/**
* 首行(字段名)字体颜色,参见 {@link org.apache.poi.ss.usermodel.IndexedColors}
*/
public String headerFontColor() default "BLACK";
/**
* 首行(字段名)单元背景填充颜色,参见 {@link org.apache.poi.ss.usermodel.IndexedColors}
*/
public String headerFillColor() default "GREY_25_PERCENT";
/**
* 首行(字段名)水平对齐方式
*/
public String headerHorizontalAlign() default "CENTER";
/**
* 字体设置:标题行字体加粗
*/
public boolean firstBold() default true;
/**
* 默认字体高度
*/
public short fontHeight() default 16;
/**
* 默认字体名
*/
public String fontName() default "Calibri";
/**
* 默认字体颜色,参见 {@link org.apache.poi.ss.usermodel.IndexedColors}
*/
public String fontColor() default "BLACK";
/**
* 默认单元背景填充颜色,参见 {@link org.apache.poi.ss.usermodel.IndexedColors}
*/
public String fillColor() default "WHITE";
/**
* 默认导出字段水平对齐方式
*/
public String horizontalAlign() default "CENTER";
/**
* 默认整数(Integer,Long,Short)格式
*/
public String integralFormat() default "0";
/**
* ({@link java.util.Date})日期时间格式, 如: yyyy-MM-dd HH:mm:ss
*/
public String dateTimeFormat() default "yyyy-MM-dd HH:mm:ss";
/**
* ({@link java.sql.Date})日期格式, 如: yyyy-MM-dd
*/
public String dateFormat() default "yyyy-MM-dd";
/**
* ({@link java.sql.Time})时间格式, 如: HH:mm:ss
*/
public String timeFormat() default "HH:mm:ss";
/**
* ({@link java.sql.Timestamp})时间戳格式, 如: yyyy-MM-dd HH:mm:ss
*/
public String timestampFormat() default "yyyy-MM-dd'T'HH:mm:ss.SSSZ";
/**
* BigDecimal 精度 默认:-1(默认不开启BigDecimal格式化)
*/
public int scale() default -1;
/**
* BigDecimal 舍入规则 默认:BigDecimal.ROUND_HALF_EVEN
*/
public int roundingMode() default BigDecimal.ROUND_HALF_EVEN;
/**
* 导出时在excel中每个列的最大高度, 单位为字符
*/
public int maxHeight() default 0;
/**
* 导出时在excel中每个列的最大宽度, 单位为字符
*/
public int maxWidth() default 32;
/**
* 当值为空时,字段的默认值
*/
public String defaultValue() default "";
/**
* 字段输出白名单,在此名单中的字段会被输出,同时指定白名单和黑名单时以白名单为准
*/
public String[] includeColumns() default {};
/**
* 字段输出黑名单,在此名单中的字段不会被输出,同时指定白名单和黑名单时以白名单为准
*/
public String[] excludeColumns() default {};
/**
* 隐藏字段名单,指定任何情况下都不输出的字段列表
* 在此名单中的字段,不论{@link #includeColumns()}{@link #excludeColumns()}如何设置都不会被输出
*/
public String[] hideColumns() default {};
/**
* 默认的字段输出白名单,此字段用于给前端提供默认的输出字段及顺序
*/
public String[] defaultIncludeColumns() default {};
/**
* 动态输出Excel中的字段名列表,此字段用于服务方法中保存的动态输出EXCEL字段名
* @since 3.26.0
*/
public String[] dynamicExcelNames() default {};
/**
* Spring Controller 服务方法中获取excel导出参数的开关参数名,
* 不需要注入SheetConfig
*/
public String getParameterArgName() default "getParameter";
/**
* Spring Controller 服务方法中定义导出文件名的参数名,
* 不需要注入SheetConfig
*/
public String exportFileNameArgName() default "exportFileName";
/**
* Spring Controller 服务方法中定义导出记录列表的原始记录对象类型
*/
public Class> beanClass() default Object.class;
/**
* 自定义导入数据转换实现类,定义此字段将忽略所有ExcelColumn注解和beanClass()定义
* @since 3.29.0
*/
public Class extends CustomBeanParser> customImporterClass() default CustomBeanParser.class;
}