public class Column extends Object
Column用于收集列属性将Java实体与Excel列进行映射,
多个Column组成Excel表头行,当前最大支持1024层表头| 限定符和类型 | 字段和说明 |
|---|---|
Border |
border
单元格边框
|
Comment |
cellComment
表头批注
|
Integer |
cellStyle
表格体的样式值
|
protected int |
cellStyleIndex
表格体的样式索引, -1表示未设置
|
Class<?> |
clazz
Excel列值的类型,不特殊指定时该类型与Java对象类型一致,它影响最终输出到Excel单元格值的类型和对齐方式
默认情况下文本类型左对齐,数字右对齐,日期居中,表头单元格全部居中
|
int |
colIndex
列索引,从0开始的数字,0对应Excel的
'A'列以此类推,-1表示未设置 |
Converter<?> |
converter
数据转换器,与
ConversionProcessor不同的是这是一个双向转换器,
同时Converter继承ConversionProcessor接口,当processor与
converter同时存在时前者具有更高的优先级 |
Effect |
effect
图片效果,可以简单使用内置的
PresetPictureEffect 28种效果 |
Fill |
fill
单元格填充
|
Font |
font
单元格字体
|
Comment |
headerComment
表头批注
|
double |
headerHeight
列宽,表头行高
|
Integer |
headerStyle
表格头的样式值
|
protected int |
headerStyleIndex
表格头的样式索引, -1表示未设置
|
String |
key
Java对象中的字段、Map的Key或者SQL语句中的select字段,具体值由工作表类型决定
|
String |
name
Excel表头名称,未指定表头名时默认以
#key的值代替 |
Column |
next
多行表头中指向后一个
Column |
NumFmt |
numFmt
表格体格式化,自定义格式化可以覆写方法
NumFmt.calcNumWidth(double, Font)调整计算 |
protected int |
option
标志位集合,保存一些简单的标志位以节省空间,对应的位点说明如下
Bit | Contents
------+---------
31, 1 | 自动换行 1位
30, 2 | 自适应列宽 2位, 0: auto, 1: auto-size 2: fixed-size
28, 1 | 忽略导出值 1位, 仅导出表头
27, 1 | 隐藏列 1位
26, 1 | 共享字符串 1位
25, 2 | 列类型, 0: 默认导出为文本 1: 导出为图片 2: 超链接
23, 2 | 垂直对齐
21, 3 | 水平对齐
|
Column |
prev
多行表头中指向前一个
Column |
ConversionProcessor |
processor
输出转换器,通常用于将不可读的状态值或枚举值转换为可读的文本输出到Excel
|
int |
realColIndex
实际列索引,它与Excel列号对应,该值通过内部计算而来,请不要在外部修改
|
StyleProcessor |
styleProcessor
动态样式转换器,可根据单元格的值动态设置单元格或整行样式,通常用于高亮显示某些需要重视的行或单元格
|
Styles |
styles
全局样式对象
|
Column |
tail
多行表头中指向最后一个
Column |
static Column |
UNALLOCATED_COLUMN
未实例化的列,可用于在写超出预知范围外的列
|
double |
width
列宽,表头行高
|
| 构造器和说明 |
|---|
Column()
实例化列信息
|
Column(Column other)
通过已有列实例化列信息
|
Column(String name)
实例化列信息
|
Column(String name,
Class<?> clazz)
实例化列信息
|
Column(String name,
Class<?> clazz,
boolean share)
实例化列信息
|
Column(String name,
Class<?> clazz,
ConversionProcessor processor)
实例化列信息
|
Column(String name,
Class<?> clazz,
ConversionProcessor processor,
boolean share)
实例化列信息
|
Column(String name,
Class<?> clazz,
int cellStyle)
实例化列信息
|
Column(String name,
Class<?> clazz,
int cellStyle,
boolean share)
实例化列信息
|
Column(String name,
String key)
实例化列信息
|
Column(String name,
String key,
boolean share)
实例化列信息
|
Column(String name,
String key,
Class<?> clazz)
实例化列信息
|
Column(String name,
String key,
Class<?> clazz,
ConversionProcessor processor)
实例化列信息
|
Column(String name,
String key,
ConversionProcessor processor)
实例化列信息
|
Column(String name,
String key,
ConversionProcessor processor,
boolean share)
实例化列信息
|
Column(String name,
String key,
int cellStyle)
实例化列信息
|
Column(String name,
String key,
int cellStyle,
boolean share)
实例化列信息
|
| 限定符和类型 | 方法和说明 |
|---|---|
Column |
addSubColumn(Column column)
在尾部添加表头
|
Column |
autoSize()
标记“自适应”列宽,导出时根据单元格内容动态计算列宽
|
Column |
fixedSize(double width)
设置固定列宽
|
Column |
from(Column other)
复制列信息
|
int |
getAutoSize()
获取列宽属性
|
int |
getCellStyle()
获取单元格样式值,导出过程中通常只计算一次通用样式,计算完后值将保存在
cellStyle中,
默认样式做为底色外部设置的“字体”,“填充”等样式将覆盖默认样式, |
protected int |
getCellStyle(Class<?> clazz)
获取单元格默认样式,通常该方法仅初始化时被调用一次
|
int |
getCellStyleIndex()
获取单元格样式索引,不包含动态样式
|
Class<?> |
getClazz()
获取列数据类型
|
int |
getColumnType()
获取列属性
|
ConversionProcessor |
getConversion()
获取输出转换器,优先返回
ConversionProcessor,其次是Converter |
Effect |
getEffect()
获取当前列设置的图片效果
|
int |
getHeaderStyleIndex()
获取表头单元格样式索引,不包含动态样式
|
String |
getName()
获取列名,列名对应Excel表头
|
NumFmt |
getNumFmt()
获取当前列统一“格式化”,仅返回通过
setNumFmt(java.lang.String)设置的统一值,不包含动态样式 |
int |
getRealColIndex()
获取列在Excel中的实际位置(从
A开始) |
Column |
getTail()
获取尾列,Excel从上到下记为首-尾列,尾列为最接近表格体
Body的列 |
double |
getWidth()
获取列宽,这里仅返回通过
setWidth(double)设置的列宽不包含自适应列宽,自适应列宽通常是在导出的时候动态计算 |
Column |
hide()
隐藏当前列
|
Column |
ignoreValue()
忽略
Body的数据只输出表头 |
boolean |
isHide()
判断当前列是否“隐藏”
|
boolean |
isIgnoreValue()
是否忽略数据
|
boolean |
isShare()
获取是否将字符串放入共享区
|
Column |
setBorder(Border border)
设置当前列统一“边框”样式
|
Column |
setCellStyle(int cellStyle)
设置单元格样式值,样式值由背景,边框,字体等进行“或”运算而来
|
Column |
setClazz(Class<?> clazz)
设置列数据类型,数据影响单元格对齐,默认字符串左对齐、数字右对齐、日期居中
|
Column |
setColIndex(int colIndex)
设置列下标,下标从
0开始对应Excel的A列,这里设置的下标是绝对位置,
如果表头下标不连续那么导出的时候列也是不连续的 |
Column |
setConverter(Converter<?> converter)
设置转换器,导出的时候将状态值或枚举值转为文本,导入的时候将文本转为状态或枚举值
|
Column |
setEffect(Effect effect)
设置当前列全局图片效果,只有当
columnType为Media时生效 |
Column |
setFill(Fill fill)
设置当前列统一“填充”样式
|
Column |
setFont(Font font)
设置当前列统一“字体”样式
|
Column |
setHeaderComment(Comment headerComment)
设置表头批注
|
Column |
setHeaderHeight(double headerHeight)
设置行高,最终的行高取所有列最大值,当行高设置为
0时效果与隐藏相同 |
Column |
setHeaderStyle(int headerStyle)
设置表头单元格样式值,样式值由背景,边框,字体等进行“或”运算而来
|
Column |
setHorizontal(int horizontal)
设置当前列统一“水平对齐”样式
|
Column |
setName(String name)
设置表头列名
|
Column |
setNumFmt(NumFmt numFmt)
设置当前列统一“格式化”样式
|
Column |
setNumFmt(String code)
设置当前列统一“格式化”样式
|
Column |
setProcessor(ConversionProcessor processor)
设置输出转换器,通常用于动态转换状态值或枚举值为文本
|
Column |
setShare(boolean share)
设置共享字符串标记,当此标记为
true时单元格的字符串将独立保存在共享区 |
Column |
setStyleProcessor(StyleProcessor styleProcessor)
设置动态样式转换器,通常用于高亮显示单元格起提醒作用
|
Column |
setVertical(int vertical)
设置当前列统一“垂直对齐”样式
|
Column |
setWidth(double width)
设置列宽,当该列同时标记为“自适应列宽”时最终的列宽取两者中的较小值,当列宽设置为
0时效果与隐藏相同 |
Column |
setWrapText(boolean wrapText)
设置“自动折行”
折行触发条件:一是当长度超过列宽时折行,二是包含回车符时折行
|
Column |
show()
标记当前列可见(默认可见)
|
int |
subColumnSize()
获取表头行数,单表头返回1,多表头时返回表头行数
|
Column[] |
toArray()
多表头时将链表转为数组
|
Column |
writeAsDefault()
指定当前列以“值”类型导出
|
Column |
writeAsHyperlink()
指定当前列以“超链接”类型导出
|
Column |
writeAsMedia()
指定当前列以“媒体”类型导出
|
public static final Column UNALLOCATED_COLUMN
public String key
public String name
#key的值代替public Class<?> clazz
public ConversionProcessor processor
public Converter<?> converter
ConversionProcessor不同的是这是一个双向转换器,
同时Converter继承ConversionProcessor接口,当processor与
converter同时存在时前者具有更高的优先级public StyleProcessor styleProcessor
public Integer cellStyle
public Integer headerStyle
protected int cellStyleIndex
protected int headerStyleIndex
public double width
public double headerHeight
public Styles styles
public Comment headerComment
public Comment cellComment
public NumFmt numFmt
NumFmt.calcNumWidth(double, Font)调整计算public int colIndex
'A'列以此类推,-1表示未设置public Column prev
Columnpublic Column next
Columnpublic Column tail
Columnpublic int realColIndex
protected int option
Bit | Contents ------+--------- 31, 1 | 自动换行 1位 30, 2 | 自适应列宽 2位, 0: auto, 1: auto-size 2: fixed-size 28, 1 | 忽略导出值 1位, 仅导出表头 27, 1 | 隐藏列 1位 26, 1 | 共享字符串 1位 25, 2 | 列类型, 0: 默认导出为文本 1: 导出为图片 2: 超链接 23, 2 | 垂直对齐 21, 3 | 水平对齐
public Effect effect
PresetPictureEffect 28种效果public Font font
public Fill fill
public Border border
public Column()
public Column(String name)
name - 列名,列名对应Excel表头public Column(String name, Class<?> clazz)
name - 列名,列名对应Excel表头clazz - 数据类型,影响单元格对齐默认字符串左对齐、数字右对齐、日期居中public Column(String name, String key)
name - 列名,列名对应Excel表头key - 取值使用的关键字对应Java对象字段名或者Map的Keypublic Column(String name, String key, Class<?> clazz)
name - 列名,列名对应Excel表头key - 取值使用的关键字对应Java对象字段名、Map的Key或者SQL中select语句包含的字段clazz - 数据类型,影响单元格对齐默认字符串左对齐、数字右对齐、日期居中public Column(String name, Class<?> clazz, ConversionProcessor processor)
name - 列名,列名对应Excel表头clazz - 数据类型,影响单元格对齐默认字符串左对齐、数字右对齐、日期居中processor - 输出转换器,动态转换状态值或枚举值为文本public Column(String name, String key, ConversionProcessor processor)
name - 列名,列名对应Excel表头key - 取值使用的关键字对应Java对象字段名、Map的Key或者SQL中select语句包含的字段processor - 输出转换器,动态转换状态值或枚举值为文本public Column(String name, Class<?> clazz, boolean share)
name - 列名,列名对应Excel表头clazz - 数据类型,影响单元格对齐默认字符串左对齐、数字右对齐、日期居中share - 是否将值放到字符串共享区public Column(String name, String key, boolean share)
name - 列名,列名对应Excel表头key - 取值使用的关键字对应Java对象字段名、Map的Key或者SQL中select语句包含的字段share - 是否将值放到字符串共享区public Column(String name, Class<?> clazz, ConversionProcessor processor, boolean share)
name - 列名,列名对应Excel表头clazz - 数据类型,影响单元格对齐默认字符串左对齐、数字右对齐、日期居中processor - 输出转换器,动态转换状态值或枚举值为文本share - 是否将值放到字符串共享区public Column(String name, String key, Class<?> clazz, ConversionProcessor processor)
name - 列名,列名对应Excel表头key - 取值使用的关键字对应Java对象字段名、Map的Key或者SQL中select语句包含的字段clazz - 数据类型,影响单元格对齐默认字符串左对齐、数字右对齐、日期居中processor - 输出转换器,动态转换状态值或枚举值为文本public Column(String name, String key, ConversionProcessor processor, boolean share)
name - 列名,列名对应Excel表头key - 取值使用的关键字对应Java对象字段名、Map的Key或者SQL中select语句包含的字段processor - 输出转换器,动态转换状态值或枚举值为文本share - 是否将值放到字符串共享区public Column(String name, Class<?> clazz, int cellStyle)
name - 列名,列名对应Excel表头clazz - 数据类型,影响单元格对齐默认字符串左对齐、数字右对齐、日期居中cellStyle - 样式值,样式值由背景,边框,字体等进行“或”运算而来public Column(String name, String key, int cellStyle)
name - 列名,列名对应Excel表头key - 取值使用的关键字对应Java对象字段名、Map的Key或者SQL中select语句包含的字段cellStyle - 样式值,样式值由背景,边框,字体等进行“或”运算而来public Column(String name, Class<?> clazz, int cellStyle, boolean share)
name - 列名,列名对应Excel表头clazz - 数据类型,影响单元格对齐默认字符串左对齐、数字右对齐、日期居中cellStyle - 样式值,样式值由背景,边框,字体等进行“或”运算而来share - 是否将值放到字符串共享区public Column(String name, String key, int cellStyle, boolean share)
name - 列名,列名对应Excel表头key - 取值使用的关键字对应Java对象字段名、Map的Key或者SQL中select语句包含的字段cellStyle - 样式值,样式值由背景,边框,字体等进行“或”运算而来share - 是否将值放到字符串共享区public Column(Column other)
other - 其它列public Column setWidth(double width)
0时效果与隐藏相同width - 列宽,必须大于等于0public Column setHeaderHeight(double headerHeight)
0时效果与隐藏相同headerHeight - 行高,必须大于等于0public boolean isShare()
public String getName()
public Class<?> getClazz()
public Column setClazz(Class<?> clazz)
clazz - 列数据类型public Column setProcessor(ConversionProcessor processor)
processor - 输出转换器public Column setStyleProcessor(StyleProcessor styleProcessor)
styleProcessor - 样式转换器public ConversionProcessor getConversion()
ConversionProcessor,其次是Converterpublic Column setConverter(Converter<?> converter)
converter - 值转换器public double getWidth()
setWidth(double)设置的列宽不包含自适应列宽,自适应列宽通常是在导出的时候动态计算-1public Column setCellStyle(int cellStyle)
cellStyle - 样式值public Column setHeaderStyle(int headerStyle)
headerStyle - 样式值public Column setColIndex(int colIndex)
0开始对应Excel的A列,这里设置的下标是绝对位置,
如果表头下标不连续那么导出的时候列也是不连续的colIndex - 从0开始的列号public int getCellStyleIndex()
-1public int getHeaderStyleIndex()
-1public Column setVertical(int vertical)
vertical - 垂直对齐,参考值Verticalspublic Column setHorizontal(int horizontal)
horizontal - 水平对齐,参考值Horizontalspublic Column setShare(boolean share)
true时单元格的字符串将独立保存在共享区share - true: 共享, false: 内嵌public NumFmt getNumFmt()
setNumFmt(java.lang.String)设置的统一值,不包含动态样式NumFmtprotected int getCellStyle(Class<?> clazz)
clazz - 列数据类型public int getCellStyle()
cellStyle中,
默认样式做为底色外部设置的“字体”,“填充”等样式将覆盖默认样式,public boolean isIgnoreValue()
public Column ignoreValue()
Body的数据只输出表头public Column setWrapText(boolean wrapText)
折行触发条件:一是当长度超过列宽时折行,二是包含回车符时折行
wrapText - 自动折行public Column setHeaderComment(Comment headerComment)
headerComment - 批注Commentpublic int subColumnSize()
public Column[] toArray()
public int getRealColIndex()
A开始)public boolean isHide()
public Column hide()
public Column show()
public Column getTail()
Body的列public Column autoSize()
public Column fixedSize(double width)
width - 列宽,必须大于等于0public int getAutoSize()
public Column writeAsDefault()
public Column writeAsMedia()
public int getColumnType()
public Column setEffect(Effect effect)
columnType为Media时生效effect - 图片效果Effectpublic Column writeAsHyperlink()
Copyright © 2024. All rights reserved.