public interface Sheet extends Closeable
header(int)方法指定表头位置,多行表头时可以指定一个起始行和结束行
来匹配,它将以行1:行2...行n拼按的形式做为Key| 限定符和类型 | 方法和说明 |
|---|---|
default Sheet |
addHeaderColumnReadOption(int option)
添加表头读取属性
|
CalcSheet |
asCalcSheet()
将工作表转为
CalcSheet以解析单元格公式 |
FullSheet |
asFullSheet()
将工作表转为
FullSheet支持全属性读取 |
MergeSheet |
asMergeSheet()
将工作表转为
MergeSheet,它将复制合并单元格的首坐标值到合并范围内的其它单元格中 |
Sheet |
asSheet()
将工作表转为普通工作表
Sheet,它只专注获取值 |
Sheet |
bind(Class<?> clazz)
绑定数据类型,后续可以通过
Row.get()方法直接将行数据转为指定的对象 |
default Sheet |
bind(Class<?> clazz,
int fromRowNum)
绑定数据类型并指定表头行号,后续可以通过
Row.get()方法直接将行数据转为指定的对象 |
default Sheet |
bind(Class<?> clazz,
int fromRowNum,
int toRowNum)
绑定数据类型并指定表头行号,后续可以通过
Row.get()方法直接将行数据转为指定的对象 |
Sheet |
bind(Class<?> clazz,
Row row)
绑定数据类型并指定表头,后续可以通过
Row.get()方法直接将行数据转为指定的对象 |
Iterator<Row> |
dataIterator()
构建一个行迭代器(不包含空行),注意返回的
Row对象是内存共享的所以不能直接收集,
收集数据前需要使用Row.to(java.lang.Class<T>)方法转为对象或者使用Row.toMap()方法转为Map再收集。 |
default Stream<Row> |
dataRows()
返回一个非空行流,它与
dataIterator()具有相同的功能 |
default Sheet |
forceImport()
强制匹配,即使没有
ExcelColumn注解的字段也会强制匹配
将行数据转换为Java对象时默认情况下只匹配带有ExcelColumn注释的字段。 |
Dimension |
getDimension()
获取当前工作表中有效区域的范围地址(任意值,样式均表示有效值),此值取于头信息<dimension>的值,
如果头信息没有此值则读取最后一行的范围,此值并不能完全反映工作表的有效行数
|
Row |
getHeader()
获取当前工作表表头,返回
header(int)方法设置表头,未指定表头位置时默认取第一个非空行做为表头,如果为多行表头则将使用':'拼接
+-----------------------------+
| | 收件人 |
| 订单号 +-------+------+------+
| | 省 | 市 | 区 |
+-------+-------+------+------+
以上表头将返回 "订单号", "收件人:省", "收件人:市", "收件人:区" |
int |
getHeaderColumnReadOption()
获取表头读取属性
|
int |
getId()
工作表id,它与索引的区别在于,id不会因为移动或删除工作表而更改。
|
int |
getIndex()
获取工作表在工作薄中的下标(从0开始)
|
String |
getName()
获取工作表的名称
|
default int |
getSize()
获取当前工作表的总行数
|
default Sheet |
header(int fromRowNum)
设置工作表的表头行号(从1开始)与Excel看到的行号一致
|
Sheet |
header(int fromRowNum,
int toRowNum)
设置工作表的表头行号
注意: 指定标题行号后,行指针将移动到标题范围的下一行.
|
default Sheet |
headerColumnIgnoreCase()
设置忽略大小写匹配表头字段
|
default Sheet |
headerColumnToCamelCase()
设置驼峰风格匹配表头字段
|
boolean |
isHidden()
判断当前工作表是否隐藏
|
default boolean |
isShow()
判断当前工作表是否显示
|
Iterator<Row> |
iterator()
构建一个行迭代器(包含空行),注意返回的
Row对象是内存共享的所以不能直接收集,
收集数据前需要使用Row.to(java.lang.Class<T>)方法转为对象或者使用Row.toMap()方法转为Map再收集。 |
List<Drawings.Picture> |
listPictures()
获取当前工作表包含的所有图片
|
Sheet |
load()
加载工作表,读取工作表之前必须先使用此方法加载,使用Reader的场景已默认加载无需手动加载
|
default Sheet |
reset()
重置游标以重头开始读,可以起到重复读的用处,不过此方法不是必要的,也可以直接通过reader获取对应工作表也可以
|
default Stream<Row> |
rows()
返回一个行流,它与
iterator()具有相同的功能 |
default void |
saveAsCSV(BufferedWriter bw)
将当前工作表另存为
CSV格式并输出到指定流 |
default void |
saveAsCSV(OutputStream os)
将当前工作表另存为
CSV格式并输出到指定字节流 |
default void |
saveAsCSV(OutputStream os,
Charset charset)
将当前工作表另存为
CSV格式并指定字符集然后输出到指定流 |
default void |
saveAsCSV(Path path)
将当前工作表另存为
CSV格式并保存到path文件中,默认以UTF-8字符集保存 |
default void |
saveAsCSV(Path path,
Charset charset)
将当前工作表另存为
CSV格式以UTF-8字符集保存保存到path文件中 |
Sheet |
setHeaderColumnReadOption(int option)
设置表头读取属性,将行数据转对象时由于Excel中的值与Java对象中定义的不同会使双方不匹配,设置读取属性可丰富读取能力,
多个属性可叠加
HeaderRow.FORCE_IMPORT: 强制导入,即使没有(ExcelColumn注解
HeaderRow.IGNORE_CASE: 忽略大小写匹配
HeaderRow.CAMEL_CASE: 驼峰风格匹配
reader.sheet(0).setHeaderColumnReadOption(HeaderRow.FORCE_IMPORT | HeaderRow.IGNORE_CASE)
|
String getName()
int getIndex()
int getId()
default int getSize()
-1表示未知Dimension getDimension()
boolean isHidden()
true 当前为“隐藏”工作表default boolean isShow()
true 当前为“显示”工作表default Sheet header(int fromRowNum)
fromRowNum - 表头行的位置(从1开始)IndexOutOfBoundsException - 如果fromRow小于1Sheet header(int fromRowNum, int toRowNum)
注意: 指定标题行号后,行指针将移动到标题范围的下一行. 以下方法 bind(Class), bind(Class, int),
bind(Class, int, int), rows(), dataRows(), iterator(),
和 dataIterator() 将受影响.
fromRowNum - 表头行的开始位置(从1开始,包含)toRowNum - 表头行的结束位置(从1开始,包含)IndexOutOfBoundsException - 如果fromRow小于1IllegalArgumentException - 如果toRow小于fromRowRow getHeader()
header(int)方法设置表头,未指定表头位置时默认取第一个非空行做为表头,如果为多行表头则将使用':'拼接
+-----------------------------+ | | 收件人 | | 订单号 +-------+------+------+ | | 省 | 市 | 区 | +-------+-------+------+------+
以上表头将返回 "订单号", "收件人:省", "收件人:市", "收件人:区"
Sheet bind(Class<?> clazz)
Row.get()方法直接将行数据转为指定的对象clazz - 行数据需要转换的对象类型default Sheet bind(Class<?> clazz, int fromRowNum)
Row.get()方法直接将行数据转为指定的对象clazz - 行数据需要转换的对象类型fromRowNum - 表头行的位置(从1开始)default Sheet bind(Class<?> clazz, int fromRowNum, int toRowNum)
Row.get()方法直接将行数据转为指定的对象clazz - 行数据需要转换的对象类型fromRowNum - 表头行的位置(从1开始)toRowNum - 表头行的结束位置(从1开始,包含)Sheet bind(Class<?> clazz, Row row)
Row.get()方法直接将行数据转为指定的对象clazz - 行数据需要转换的对象类型row - 自定义表头Sheet load() throws IOException
IOException - 读取异常Iterator<Row> iterator()
Row对象是内存共享的所以不能直接收集,
收集数据前需要使用Row.to(java.lang.Class<T>)方法转为对象或者使用Row.toMap()方法转为Map再收集。Iterator<Row> dataIterator()
Row对象是内存共享的所以不能直接收集,
收集数据前需要使用Row.to(java.lang.Class<T>)方法转为对象或者使用Row.toMap()方法转为Map再收集。List<Drawings.Picture> listPictures()
nulldefault Sheet reset()
ExcelReadException - 读取异常UnsupportedOperationException - 如果实现类不支持重复读时抛此异常default Stream<Row> rows()
iterator()具有相同的功能default Stream<Row> dataRows()
dataIterator()具有相同的功能default void saveAsCSV(Path path) throws IOException
CSV格式并保存到path文件中,默认以UTF-8字符集保存path - 另存为CSV文件路径IOException - 读写异常default void saveAsCSV(Path path, Charset charset) throws IOException
CSV格式以UTF-8字符集保存保存到path文件中path - 另存为CSV文件路径charset - 指定字符集IOException - 读写异常default void saveAsCSV(OutputStream os) throws IOException
CSV格式并输出到指定字节流os - 输出字节流IOException - 读写异常default void saveAsCSV(OutputStream os, Charset charset) throws IOException
CSV格式并指定字符集然后输出到指定流os - 输出流charset - 字符集IOException - 读写异常default void saveAsCSV(BufferedWriter bw) throws IOException
CSV格式并输出到指定流bw - 输出流IOException - 读写异常default Sheet forceImport()
ExcelColumn注解的字段也会强制匹配
将行数据转换为Java对象时默认情况下只匹配带有ExcelColumn注释的字段。
forceImport将跳过此限制,有(ExcelColumn注释的依然按注解匹配,
没有(ExcelColumn注释的字段将与字段名匹配
default Sheet headerColumnIgnoreCase()
default Sheet headerColumnToCamelCase()
default Sheet addHeaderColumnReadOption(int option)
option - 额外属性Sheet setHeaderColumnReadOption(int option)
reader.sheet(0).setHeaderColumnReadOption(HeaderRow.FORCE_IMPORT | HeaderRow.IGNORE_CASE)
option - 额外属性int getHeaderColumnReadOption()
MergeSheet asMergeSheet()
MergeSheet,它将复制合并单元格的首坐标值到合并范围内的其它单元格中MergeSheetCopyright © 2024. All rights reserved.