public class StatementSheet extends ResultSetSheet
StatementSheet的数据源为ResultSet,它也是ResultSetSheet的子类,
用于将数据库的数据导出到Excel,它并不限制数据库类型,只需实现jdbc协议即可,使用StatementSheet
可以避免将查询结果转为Java实体。
这是一个比较小众的工作表,最好只在比较简单的场景下使用,比如一次性导出的场景。因为StatementSheet
并不支持数据切片,所以当查询结果较大时可能出现OOM。如果不确认数据量时最好使用ListSheet分片获取数据
注意:如果实例化传入SQL语句和Connection在内部创建Statement时将默认设置fetch-size=Integer.MIN_VALUE
以尝试关闭游标的服务器端缓存,适用于处理非常大的结果集,但并不适用于所有JDBC驱动程序且需要权衡网络流量和服务器负载的影响。
如果数据量小不需要这个设定则可以使用setStatement(java.sql.PreparedStatement)方法传入外部已设置好的Statement
try (Connection con = getConnection()) {
String sql = "select name,age,create_date,update_date " +
"from student where id between ? and ?";
new Workbook()
.addSheet(new StatementSheet(con, sql, ps -> {
ps.setInt(1, 10);
ps.setInt(2, 20);
}))
.writeTo(Paths.get("/tmp/student.xlsx"));
}ResultSetSheetResultSetSheet.SQLColumnrsautoSize, cellValueAndStyle, columns, comments, copyCount, copySheet, extProp, extPropMark, headerReady, headerRowHeight, headStyle, headStyleIndex, hidden, id, LOGGER, name, nonHeader, progressConsumer, relManager, rowBlock, rowHeight, rows, sheetWriter, shouldClose, showGridLines, startCoordinate, watermark, width, workbook, zebraFill, zebraFillStyle| 构造器和说明 |
|---|
StatementSheet()
实例化工作表,未指定工作表名称时默认以
'Sheet'+id命名 |
StatementSheet(Column... columns)
实例化工作表并指定表头信息
|
StatementSheet(Connection con,
String sql)
实例化工作表
|
StatementSheet(Connection con,
String sql,
Column... columns)
实例化工作表并指定工作表名
|
StatementSheet(Connection con,
String sql,
ParamProcessor pp)
实例化工作表并指定工作表名
|
StatementSheet(Connection con,
String sql,
ParamProcessor pp,
Column... columns)
实例化工作表并指定工作表名
|
StatementSheet(String name)
实例化工作表并指定工作表名称
|
StatementSheet(String name,
Column... columns)
实例化工作表并指定工作表名称和表头信息
|
StatementSheet(String name,
Connection con,
String sql)
实例化工作表并指定工作表名
|
StatementSheet(String name,
Connection con,
String sql,
Column... columns)
实例化工作表并指定工作表名
|
StatementSheet(String name,
Connection con,
String sql,
ParamProcessor pp)
实例化工作表并指定工作表名
|
StatementSheet(String name,
Connection con,
String sql,
ParamProcessor pp,
Column... columns)
实例化工作表并指定工作表名
|
| 限定符和类型 | 方法和说明 |
|---|---|
void |
close()
关闭数据源并关闭
Statement and ResultSet |
StatementSheet |
setStatement(PreparedStatement ps)
设置数据源
PreparedStatement |
void |
writeTo(Path path)
落盘,将工作表写到指定路径
|
columnTypeToClass, findByKey, getHeaderColumns, getStyleProcessor, resetBlockData, resetCellValueAndStyle, resetRowData, setResultSet, setStyleProcessoraddRel, afterSheetAccess, afterSheetDataWriter, autoSize, buildHeadStyle, calculateRealColIndex, cancelZebraLine, checkColumnLimit, clone, createComments, defaultHeadStyle, defaultHeadStyleIndex, defaultZebraLine, findRel, fixedSize, fixedSize, forWrite, getAndSortHeaderColumns, getAutoSize, getCellValueAndStyle, getColumns, getComments, getCopySheetName, getDefaultWidth, getExtPropAsMap, getExtPropValue, getFileName, getForceExport, getHeaderRowHeight, getHeadStyle, getHeadStyleIndex, getId, getName, getNonHeader, getProgressConsumer, getRelManager, getRowBlockSize, getRowHeight, getRowLimit, getSheetWriter, getStartColNum, getStartRowNum, getWatermark, getWorkbook, getZebraFill, getZebraFillStyle, hasHeaderColumns, hidden, hideGridLines, ignoreHeader, insert, int2Col, isAutoSize, isHidden, isScrollToVisibleArea, isShowGridLines, markExtProp, mergeHeaderCellsIfEquals, nextBlock, onProgress, paging, putAllExtProp, putExtProp, putExtPropIfAbsent, resetCommonProperties, reverseHeadColumn, search, setCellValueAndStyle, setColumns, setColumns, setHeaderRowHeight, setHeadStyle, setHeadStyleIndex, setId, setName, setRowHeight, setSheetWriter, setStartCoordinate, setStartCoordinate, setStartCoordinate, setStartCoordinate, setStartCoordinate, setStartCoordinate, setWatermark, setWorkbook, setZebraLine, showGridLines, size, sortColumns, toCoordinatepublic StatementSheet()
'Sheet'+id命名public StatementSheet(String name)
name - 工作表名称public StatementSheet(Column... columns)
columns - 表头信息public StatementSheet(String name, Column... columns)
name - 工作表名称columns - 表头信息public StatementSheet(Connection con, String sql)
con - 数据库连接 Connectionsql - SQL语句public StatementSheet(String name, Connection con, String sql)
name - 工作表名con - 数据库连接 Connectionsql - SQL语句public StatementSheet(Connection con, String sql, ParamProcessor pp)
con - 数据库连接 Connectionsql - SQL语句pp - 参数处理器public StatementSheet(String name, Connection con, String sql, ParamProcessor pp)
name - 工作表名con - 数据库连接 Connectionsql - SQL语句pp - 参数处理器public StatementSheet(Connection con, String sql, Column... columns)
con - 数据库连接 Connectionsql - SQL语句columns - 表头信息public StatementSheet(String name, Connection con, String sql, Column... columns)
name - 工作表名con - 数据库连接 Connectionsql - SQL语句columns - 表头信息public StatementSheet(Connection con, String sql, ParamProcessor pp, Column... columns)
con - 数据库连接 Connectionsql - SQL语句pp - 参数处理器columns - 表头信息public StatementSheet(String name, Connection con, String sql, ParamProcessor pp, Column... columns)
name - 工作表名con - 数据库连接 Connectionsql - SQL语句pp - 参数处理器columns - 表头信息public StatementSheet setStatement(PreparedStatement ps)
PreparedStatementps - 数据源PreparedStatementpublic void close()
throws IOException
Statement and ResultSetclose 在类中 ResultSetSheetIOException - if I/O error occurpublic void writeTo(Path path) throws IOException
writeTo 在接口中 StorablewriteTo 在类中 Sheetpath - 指定保存路径IOException - if I/O error occurCopyright © 2025. All rights reserved.