package com.yanzuoguang.excel;

import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import org.apache.poi.ss.usermodel.CellStyle;

/**
 * 列设置
 *
 * @author 颜佐光
 */
@ApiModel("合并列")
public class ExportColumn {

    /**
     * 列标题,如 A.B
     */
    @ApiModelProperty(notes = "列标题,如 A.B")
    private String title;

    /**
     * 数据列名称
     */
    @ApiModelProperty(notes = "数据列名称")
    private String name;

    /**
     * 数据是否合并
     */
    @ApiModelProperty(notes = "数据是否合并")
    private boolean merger;
    /**
     * 宽度
     */
    @ApiModelProperty(notes = "宽度")
    private short width;
    /**
     * 对其
     */
    @ApiModelProperty(notes = "左右对其:0-居中,1-左对其,2-右对齐")
    private int alignment;
    /**
     * 对其
     */
    @ApiModelProperty(notes = "上下对其:0-居中,1-上对其,2-下对齐")
    private int verticalAlignment;
    /**
     * 列序号
     */
    int columnIndex;
    /**
     * 合计列数据
     */
    ExcelMergerData groupData = new ExcelMergerData();
    /**
     * 列样式
     */
    CellStyle cellStyle;

    public ExportColumn() {
    }

    public ExportColumn(String title, String name) {
        this.title = title;
        this.name = name;
    }

    public ExportColumn(String title, String name, short width) {
        this.title = title;
        this.name = name;
        this.width = width;
    }

    public ExportColumn(String title, String name, boolean merger, short width) {
        this.title = title;
        this.name = name;
        this.merger = merger;
        this.width = width;
    }

    public String getTitle() {
        return title;
    }

    public void setTitle(String title) {
        this.title = title;
    }

    public String getName() {
        return name;
    }

    public void setName(String name) {
        this.name = name;
    }

    public boolean isMerger() {
        return merger;
    }

    public void setMerger(boolean merger) {
        this.merger = merger;
    }

    public short getWidth() {
        if (this.width < 1) {
            return ExportData.COLUMN_WIDTH;
        }
        return width;
    }

    public void setWidth(short width) {
        this.width = width;
    }

    public int getAlignment() {
        return alignment;
    }

    public void setAlignment(int alignment) {
        this.alignment = alignment;
    }

    public int getVerticalAlignment() {
        return verticalAlignment;
    }

    public void setVerticalAlignment(int verticalAlignment) {
        this.verticalAlignment = verticalAlignment;
    }
}