package com.qmth.boot.tools.excel.annotation;

import com.qmth.boot.tools.excel.convertor.ValueConvertor;

import java.lang.annotation.*;

/**
 * Excel数据列与bean字段对应关系设置
 */
@Retention(RetentionPolicy.RUNTIME)
@Target({ ElementType.FIELD })
@Documented
public @interface ExcelColumn {

    /**
     * 字段对应的列名
     *
     * @return
     */
    String name();

    /**
     * 输出Excel时各列的顺序，数值越小越靠前
     *
     * @return
     */
    int index();

    /**
     * 字段是否允许为空
     *
     * @return
     */
    boolean nullable() default false;

    /**
     * 自定义解析/输出使用的格式<br/>
     * 目前只针对Date, LocalDateTime, double, Double, float, Float字段类型有效
     *
     * @return
     */
    String pattern() default "";

    /**
     * 自定义解析与格式化输出工具
     *
     * @return
     */
    Class<? extends ValueConvertor> convertor() default ValueConvertor.class;

}
