/* * 文件名:TableColumn.java * 版权: * 描述: * 修改人: * 修改时间: * 修改内容: */ package com.post.excelTools; import java.util.LinkedList; import java.util.List; public class TableColumn { /** * 字符串型 */ public static final int COLUMN_TYPE_STRING = 0; /** * 浮点型,保留2位小数 */ public static final int COLUMN_TYPE_FLOAT_2 = 1; /** * 浮点型,保留3位小数 */ public static final int COLUMN_TYPE_FLOAT_3 = 2; /** * 整形 */ public static final int COLUMN_TYPE_INTEGER = 3; /** * 公式字段 */ public static final int COLUMN_TYPE_FORMULA = 4; /** * 红色背景 */ public static final int COLUMN_TYPE_RED_BG = 10; /** * 黄色背景 */ public static final int COLUMN_TYPE_YELLOW_BG = 11; /** * 绿色背景 */ public static final int COLUMN_TYPE_GREEN_BG = 12; /** * 列id */ private String id; /** * 列显示字符 */ private String display; /** * 列对应数据库字段 */ private String dbField; /** * 列数据类型,参考静态变量COLUMN_TYPE_* 默认为{@link #COLUMN_TYPE_STRING} */ private int columnType = COLUMN_TYPE_STRING; /** * 是否合并相同行, 默认false */ private boolean grouped = false; /** * 是否显示小计,只在该列为grouped情况下生效, 默认false */ private boolean displaySummary = false; /** * 小计的聚集方法,包括:sum、avg、max */ private String aggregateRule; /** * 是否显示该列, 默认true */ private boolean isVisible = true; /** * 标识该列是否为复合表头, 默认false */ private boolean isComplex = false; /** * 列描述 */ private String common; /** * 列宽度,主要用于前台显示,默认100长度单位 */ private int width = 100; /** * 列宽度(百分比形式),主要用于前台显示 */ private int percentWidth; /** * 列的宽度类型,分为百分比宽度和实际宽度,分别以 P 和 A 表示,默认为P */ private String widthType = "P"; protected int level; protected TableColumn parent = null; /** * 复合表头,拥有子列 */ protected List children = new LinkedList(); public void addChild(TableColumn column) { children.add(column); column.parent = this; if (column.isVisible()) isComplex = true; } public List getChildren() { LinkedList ret = new LinkedList(); for (TableColumn c : children) { if (c.isVisible()) ret.add(c); } return ret; } public boolean isComplex() { return isComplex; } public int getLength() { int len = 0; if (isComplex()) { for (TableColumn col : getChildren()) { len += col.getLength(); } } else { len = 1; } return len; } public String getDisplay() { return display; } public void setDisplay(String display) { this.display = display; } public String getDbField() { return dbField; } public void setDbField(String dbField) { this.dbField = dbField; } public int getColumnType() { return columnType; } public String getColumnStringType(int columnType) { String stringType = "string"; if (columnType == this.COLUMN_TYPE_INTEGER) { stringType = "int"; } else if (columnType == this.COLUMN_TYPE_FLOAT_2) { stringType = "float"; } else if (columnType == this.COLUMN_TYPE_FLOAT_3) { stringType = "float"; } return stringType; } public void setColumnType(int columnType) { this.columnType = columnType; } public boolean isGrouped() { return grouped; } public void setGrouped(boolean grouped) { this.grouped = grouped; } public boolean isDisplaySummary() { return displaySummary; } public void setDisplaySummary(boolean displaySummary) { this.displaySummary = displaySummary; } public boolean isVisible() { return isVisible; } public void setVisible(boolean isVisible) { this.isVisible = isVisible; } public String getAggregateRule() { return aggregateRule; } public void setAggregateRule(String aggregateRule) { this.aggregateRule = aggregateRule; } public String getId() { return id; } public void setId(String id) { this.id = id; } public String getCommon() { return common; } public void setCommon(String common) { this.common = common; } public int getWidth() { return width; } public void setWidth(int width) { this.width = width; } public int getPercentWidth() { return percentWidth; } public void setPercentWidth(int percentWidth) { this.percentWidth = percentWidth; } public String getWidthType() { return widthType; } public void setWidthType(String widthType) { this.widthType = widthType; } }