| 程序包 | 说明 |
|---|---|
| org.ttzero.excel.entity | |
| org.ttzero.excel.entity.csv | |
| org.ttzero.excel.entity.e7 |
| 限定符和类型 | 类和说明 |
|---|---|
class |
CSVSheet
CSVSheet的数据源为csv文件,可用于将csv文件转为Excel工作表,
通过CSVUtil提供的迭代器使得CSVSheet与ListSheet工作表具有
相似的切片属性,输出协议调用nextBlock获取分片数据时CSVSheet从CSVIterator
中逐行读取数据并输出以此控制整个过程对内存的消耗
默认情况下CSV文件第一行数据将做为Excel表头,如果要忽略这个设定则需要调用ignoreHeader()方法忽略表头,
忽略表头后第一行数据将被视为普通数据导了,也就是说无论是否忽略表头CSV的数据都将被完全复制到Excel文件中,
只是默认第一行将添加表头样式 |
class |
EmptySheet
空工作表,可用于占位,如果指定表头则会输出表头
|
class |
ListMapSheet<T>
ListMapSheet是ListSheet的一个子集,因为取值方式完全不同所以将其独立,
未指定表头信息时ListMapSheet将导出全字段这是与ListSheet完全不同的设定 |
class |
ListSheet<T>
对象数组工作表,内部使用
List<T>做数据源,所以它是应用最广泛的一种工作表。 |
class |
ResultSetSheet
ResultSetSheet的数据源为ResultSet一般情况下它用于存储过程,
ResultSetSheet可以将存储过程的查询结果直接转为工作表的数据,省掉将查结果转为
Java对象再转为工作表输出协议的数据结构。 |
class |
SimpleSheet<T>
简单工作表,它的简单之处在于只需要指定单元格的值即可输出,不需要再定义对象也不受@ExcelColumn注解影响
例如
Arrays.asList(1, 2, 3)则会将数字1,2,3输出到第一行的A,B,C三列。 |
class |
StatementSheet
StatementSheet的数据源为ResultSet,它也是ResultSetSheet的子类,
用于将数据库的数据导出到Excel,它并不限制数据库类型,只需实现jdbc协议即可,使用StatementSheet
可以避免将查询结果转为Java实体。 |
class |
TemplateSheet
模板工作表,它支持指定一个已有的Excel文件作为模板导出,
TemplateSheet将复制模板工作表的样式并替换占位符,
同时TemplateSheet也可以和其它Worksheet混用,这意味着可以添加多个模板工作表和普通工作表。 |
| 限定符和类型 | 字段和说明 |
|---|---|
protected BiConsumer<Sheet,Integer> |
Sheet.progressConsumer
导出进度窗口,默认情况下RowBlock每刷新一次就会更新一次进度,也就是每32行通知一次
|
| 限定符和类型 | 方法和说明 |
|---|---|
Sheet |
Sheet.addRel(Relationship rel)
添加关联,当工作表需要引入其它资源时必须将其添加进关联关系中,关联关系由
RelManager管理。 |
Sheet |
Sheet.autoSize()
标记当前工作表自适应列宽,此优先级低于使用
Column.setWidth(double)指定列宽 |
Sheet |
ListSheet.cancelForceExport()
取消强制导出,可以取消在工作表
Workbook上设置的全局强制导出标记 |
Sheet |
Sheet.cancelZebraLine()
取消斑马线,如果在工作薄Workbook设置了全局斑马线可使用此方法取消当前工作表Worksheet的斑马线
|
Sheet |
Sheet.clone()
深拷贝当前工作表,分页时使用
|
Sheet |
Sheet.defaultZebraLine()
设置默认斑马线,默认填充色HEX值为
E9EAEC |
Sheet |
Sheet.fixedSize()
设置当前工作表使用固定列宽,将默认使用
getDefaultWidth()返回的宽度 |
Sheet |
Sheet.fixedSize(double width)
设置当前工作表使用固定列宽并指定宽度,此方法会对入参进行重算,当宽度为'零'时效果相当于隐藏该列
|
Sheet |
ListSheet.forceExport()
强制导出
为了保证数据安全默认情况下Java Bean只导出标记有@ExcelColumn的字段和方法,
但某些情况不方便修改实体此时可以使用强制导出功能将Bean中的全字段导出(标记有@IgnoreExport注解除外),
此方法可能会造成数据泄漏风险,可参考
ExcelColumn注解说明 |
Sheet |
Sheet.forWrite()
准备导出所需要的参数和组件
|
Sheet |
Workbook.getSheet(String sheetName)
返回指定名称的工作表
Sheet
注意:只能查找那些在创建时设置了名称的工作表 |
Sheet |
Workbook.getSheetAt(int index)
获取指定位置的工作表
|
Sheet[] |
Workbook.getSheets()
获取所有
Sheet集合
注意:返回的对象是一个浅拷贝对其做任何修改将影响最终效果 |
Sheet |
Sheet.hidden()
隐藏工作表
|
Sheet |
Sheet.hideGridLines()
设置隐藏“网格线”
|
Sheet |
Sheet.ignoreHeader()
忽略表头,调用此方法后表头将不会输出到Excel中,注意这里不是隐藏
|
Sheet |
Sheet.onProgress(BiConsumer<Sheet,Integer> progressConsumer)
添加进度观察者,在数据较大的导出过程中添加观察者打印进度可避免被误解为程序假死
new ListSheet<>().onProgress((sheet, row) -> {
System.out.println(sheet + " write " + row + " rows");
})
|
Sheet |
Sheet.putAllExtProp(Map<String,Object> m)
批量添加扩展参数,key存在时覆盖原值
|
Sheet |
Sheet.putExtProp(String key,
Object value)
添加扩展参数,key存在时覆盖原值
|
Sheet |
Sheet.putExtPropIfAbsent(String key,
Object value)
添加扩展参数,如果key不存在则添加,存在时忽略
|
Sheet |
Sheet.setCellValueAndStyle(ICellValueAndStyle cellValueAndStyle)
设置数据转换器,用于将Java对象转为各工作表输出协议可接受的数据结构,一般会将每个单元格的值输出为
Cell对象,
它与Sheet数据源中的Java类型完全分离,使得下游的输出协议有统一输入源。 |
Sheet |
ListSheet.setClass(Class<?> tClazz)
指定泛型
T的实际类型,不指定时默认由反射或数组中第一个对象类型而定 |
Sheet |
Sheet.setColumns(Column... columns)
设置表头,无数据时依然会导出该表头
|
Sheet |
Sheet.setColumns(List<Column> columns)
设置表头,无数据时依然会导出该表头
|
Sheet |
Sheet.setHeaderRowHeight(double headerRowHeight)
设置表头行高,其优化级低于
Column.setHeaderHeight(double)设置的值
可接受负数和零,负数等价与未设置默认行高为13.5,零效果等价于隐藏,但不能通过右建“取消隐藏” |
Sheet |
Sheet.setHeadStyle(int style)
设置统一的表头样式值
|
Sheet |
Sheet.setHeadStyleIndex(int styleIndex)
设置统一的表头样式索引
|
Sheet |
Sheet.setId(int id)
设置工作表ID,请不要在外部随意修改,否则打开文件异常
|
Sheet |
Sheet.setName(String name)
设置工作表表名,使用Office打开文件时它将显示在底部的Tab栏
注意:内部不会检查重名,所以请在外部保证在一个工作薄下所有工作表名唯一,否则打开文件异常
|
Sheet |
Sheet.setRowHeight(double rowHeight)
设置数据行高,未指定或负数时默认行高为
13.5 |
Sheet |
Sheet.setSheetWriter(IWorksheetWriter sheetWriter)
设置输出协议,必须与对应的
IWorkbookWriter工作薄输出协议一起使用 |
Sheet |
Sheet.setStartCoordinate(int startRowNum)
指定起始行,行号必须大于0
|
Sheet |
Sheet.setStartCoordinate(int startRowNum,
boolean scrollToVisibleArea)
指定起始行,行号必须大于0
|
Sheet |
Sheet.setStartCoordinate(int startRowNum,
int startColNum)
指定起始行号和列号,行号必须大于0
|
Sheet |
Sheet.setStartCoordinate(int startRowNum,
int startColNum,
boolean scrollToVisibleArea)
指定起始行号和列号,行号必须大于0
默认情况下左上角一定是
A1,如果scrollToVisibleArea=true则打开文件时StartRowIndex
将会显示在窗口的第一行 |
Sheet |
Sheet.setStartCoordinate(String coordinate)
指定起始坐标
|
Sheet |
Sheet.setStartCoordinate(String coordinate,
boolean scrollToVisibleArea)
指定起始坐标
|
Sheet |
ResultSetSheet.setStyleProcessor(StyleProcessor<ResultSet> styleProcessor)
设置行级动态样式处理器,作用于整行优先级高于单元格动态样式处理器
|
Sheet |
ListSheet.setStyleProcessor(StyleProcessor<T> styleProcessor)
设置行级动态样式处理器,作用于整行优先级高于单元格动态样式处理器
|
Sheet |
Sheet.setWatermark(Watermark watermark)
设置水印,优先级高于Workbook中的全局水印
|
Sheet |
Sheet.setWorkbook(Workbook workbook)
设置工作薄,一般在调用
Workbook.addSheet(org.ttzero.excel.entity.Sheet)时设置工作薄,Workbook包含
样式、共享字符区、资源类型等全局配置,为了方便读取所以每个worksheet均包含Workbook句柄 |
Sheet |
Sheet.setZebraLine(Fill fill)
设置斑马线填充样式,为了不影响正常阅读建议使用浅色,默认无斑马线
|
Sheet |
Sheet.showGridLines()
设置显示“网格线”
|
| 限定符和类型 | 方法和说明 |
|---|---|
BiConsumer<Sheet,Integer> |
Sheet.getProgressConsumer()
获取进度观察者
|
BiConsumer<Sheet,Integer> |
Workbook.getProgressConsumer()
获取进度监听器
|
| 限定符和类型 | 方法和说明 |
|---|---|
Workbook |
Workbook.addSheet(Sheet sheet)
添加一个工作表
Sheet,新添加的工作表总是排在队列最后,
可以使用Workbook.insertSheet(int, org.ttzero.excel.entity.Sheet)插入到指定位置 |
IWorksheetWriter |
IWorkbookWriter.getWorksheetWriter(Sheet sheet)
获取工作表输出协议
|
Workbook |
Workbook.insertSheet(int index,
Sheet sheet)
在指定下标插入一个工作表
Sheet |
IWorksheetWriter |
IWorksheetWriter.setWorksheet(Sheet sheet)
设置工作表
|
| 限定符和类型 | 方法和说明 |
|---|---|
Sheet |
Sheet.onProgress(BiConsumer<Sheet,Integer> progressConsumer)
添加进度观察者,在数据较大的导出过程中添加观察者打印进度可避免被误解为程序假死
new ListSheet<>().onProgress((sheet, row) -> {
System.out.println(sheet + " write " + row + " rows");
})
|
Workbook |
Workbook.onProgress(BiConsumer<Sheet,Integer> progressConsumer)
添加一个进度监听器,可以在较大导出时展示进度
new Workbook().onProgress((sheet, row) -> {
System.out.println(sheet + " write " + row + " rows");
})
|
| 限定符和类型 | 字段和说明 |
|---|---|
protected Sheet |
CSVWorksheetWriter.sheet |
| 限定符和类型 | 字段和说明 |
|---|---|
protected BiConsumer<Sheet,Integer> |
CSVWorksheetWriter.progressConsumer
A progress window
|
| 限定符和类型 | 方法和说明 |
|---|---|
IWorksheetWriter |
CSVWorkbookWriter.getWorksheetWriter(Sheet sheet) |
IWorksheetWriter |
CSVWorksheetWriter.setWorksheet(Sheet sheet) |
| 构造器和说明 |
|---|
CSVWorksheetWriter(Sheet sheet) |
CSVWorksheetWriter(Sheet sheet,
boolean withBom) |
| 限定符和类型 | 字段和说明 |
|---|---|
protected Sheet |
XMLWorksheetWriter.sheet |
| 限定符和类型 | 字段和说明 |
|---|---|
protected BiConsumer<Sheet,Integer> |
XMLWorksheetWriter.progressConsumer
A progress window
|
| 限定符和类型 | 方法和说明 |
|---|---|
IWorksheetWriter |
XMLWorkbookWriter.getWorksheetWriter(Sheet sheet) |
IWorksheetWriter |
XMLWorksheetWriter.setWorksheet(Sheet sheet)
Rest worksheet
|
| 构造器和说明 |
|---|
XMLWorksheetWriter(Sheet sheet) |
Copyright © 2025. All rights reserved.