public class ExcelWriter extends ExcelBase<ExcelWriter>
1. 编辑已存在的Excel,可写出原Excel文件,也可写出到其它地方(到文件或到流) 2. 新建一个空的Excel工作簿,完成数据填充后写出(到文件或到流)
| Constructor and Description |
|---|
ExcelWriter()
构造,默认生成xls格式的Excel文件
此构造不传入写出的Excel文件路径,只能调用
flush(OutputStream)方法写出到流
若写出到文件,还需调用setDestFile(File)方法自定义写出的文件,然后调用flush()方法写出到文件 |
ExcelWriter(boolean isXlsx)
构造
此构造不传入写出的Excel文件路径,只能调用
flush(OutputStream)方法写出到流
若写出到文件,需要调用flush(File) 写出到文件 |
ExcelWriter(boolean isXlsx,
String sheetName)
构造
此构造不传入写出的Excel文件路径,只能调用
flush(OutputStream)方法写出到流
若写出到文件,需要调用flush(File) 写出到文件 |
ExcelWriter(File destFile)
构造,默认写出到第一个sheet,第一个sheet名为sheet1
|
ExcelWriter(File destFile,
String sheetName)
构造
|
ExcelWriter(org.apache.poi.ss.usermodel.Sheet sheet)
构造
此构造不传入写出的Excel文件路径,只能调用
flush(OutputStream)方法写出到流
若写出到文件,还需调用setDestFile(File)方法自定义写出的文件,然后调用flush()方法写出到文件 |
ExcelWriter(String destFilePath)
构造,默认写出到第一个sheet,第一个sheet名为sheet1
|
ExcelWriter(String destFilePath,
String sheetName)
构造
|
ExcelWriter(org.apache.poi.ss.usermodel.Workbook workbook,
String sheetName)
构造
此构造不传入写出的Excel文件路径,只能调用
flush(OutputStream)方法写出到流
若写出到文件,还需调用setDestFile(File)方法自定义写出的文件,然后调用flush()方法写出到文件 |
| Modifier and Type | Method and Description |
|---|---|
ExcelWriter |
addHeaderAlias(String name,
String alias)
增加标题别名
|
ExcelWriter |
autoSizeColumn(int columnIndex)
设置某列为自动宽度,不考虑合并单元格
此方法必须在指定列数据完全写出后调用才有效。
|
ExcelWriter |
autoSizeColumn(int columnIndex,
boolean useMergedCells)
设置某列为自动宽度
此方法必须在指定列数据完全写出后调用才有效。
|
ExcelWriter |
autoSizeColumnAll()
设置所有列为自动宽度,不考虑合并单元格
此方法必须在指定列数据完全写出后调用才有效。
列数计算是通过第一行计算的
|
ExcelWriter |
clearHeaderAlias()
清空标题别名,key为Map中的key,value为别名
|
void |
close()
关闭工作簿
如果用户设定了目标文件,先写出目标文件后给关闭工作簿
|
protected void |
closeWithoutFlush()
关闭工作簿但是不写出
|
org.apache.poi.ss.usermodel.Font |
createFont()
创建字体
|
ExcelWriter |
flush()
将Excel Workbook刷出到预定义的文件
如果用户未自定义输出的文件,将抛出
NullPointerException
预定义文件可以通过setDestFile(File) 方法预定义,或者通过构造定义 |
ExcelWriter |
flush(File destFile)
将Excel Workbook刷出到文件
如果用户未自定义输出的文件,将抛出
InstrumentException |
ExcelWriter |
flush(OutputStream out)
将Excel Workbook刷出到输出流
|
ExcelWriter |
flush(OutputStream out,
boolean isCloseOut)
将Excel Workbook刷出到输出流
|
org.apache.poi.ss.usermodel.CellStyle |
getCellStyle()
获取单元格样式,获取样式后可自定义样式
|
int |
getCurrentRow()
获得当前行
|
org.apache.poi.ss.usermodel.CellStyle |
getHeadCellStyle()
获取头部样式,获取样式后可自定义样式
|
StyleSet |
getStyleSet()
获取样式集,样式集可以自定义包括:
|
ExcelWriter |
merge(int lastColumn)
合并当前行的单元格
样式为默认标题样式,可使用
getHeadCellStyle()方法调用后自定义默认样式 |
ExcelWriter |
merge(int firstRow,
int lastRow,
int firstColumn,
int lastColumn,
Object content,
boolean isSetHeaderStyle)
合并某行的单元格,并写入对象到单元格
如果写到单元格中的内容非null,行号自动+1,否则当前行号不变
样式为默认标题样式,可使用
getHeadCellStyle()方法调用后自定义默认样式 |
ExcelWriter |
merge(int lastColumn,
Object content)
合并当前行的单元格,并写入对象到单元格
如果写到单元格中的内容非null,行号自动+1,否则当前行号不变
样式为默认标题样式,可使用
getHeadCellStyle()方法调用后自定义默认样式 |
ExcelWriter |
merge(int lastColumn,
Object content,
boolean isSetHeaderStyle)
合并某行的单元格,并写入对象到单元格
如果写到单元格中的内容非null,行号自动+1,否则当前行号不变
样式为默认标题样式,可使用
getHeadCellStyle()方法调用后自定义默认样式 |
ExcelWriter |
passCurrentRow()
跳过当前行
|
ExcelWriter |
passRows(int rows)
跳过指定行数
|
ExcelWriter |
renameSheet(int sheet,
String sheetName)
重命名sheet
|
ExcelWriter |
renameSheet(String sheetName)
重命名当前sheet
|
ExcelWriter |
reset()
重置Writer,包括:
|
ExcelWriter |
resetRow()
重置当前行为0
|
ExcelWriter |
setColumnWidth(int columnIndex,
int width)
设置列宽(单位为一个字符的宽度,例如传入width为10,表示10个字符的宽度)
|
ExcelWriter |
setCurrentRow(int rowIndex)
设置当前所在行
|
ExcelWriter |
setDestFile(File destFile)
设置写出的目标文件
|
ExcelWriter |
setHeaderAlias(Map<String,String> headerAlias)
设置标题别名,key为Map中的key,value为别名
|
ExcelWriter |
setHeaderOrFooter(String text,
Align align,
boolean isFooter)
设置Excel页眉或页脚
|
ExcelWriter |
setOnlyAlias(boolean isOnlyAlias)
设置是否只保留别名中的字段值,如果为true,则不设置alias的字段将不被输出,false表示原样输出
|
ExcelWriter |
setRowHeight(int rownum,
int height)
设置行高,值为一个点的高度
|
ExcelWriter |
setSheet(int sheetIndex)
自定义需要读取或写出的Sheet,如果给定的sheet不存在,创建之(命名为默认)
在读取中,此方法用于切换读取的sheet,在写出时,此方法用于新建或者切换sheet
|
ExcelWriter |
setSheet(String sheetName)
自定义需要读取或写出的Sheet,如果给定的sheet不存在,创建之。
在读取中,此方法用于切换读取的sheet,在写出时,此方法用于新建或者切换sheet。
|
ExcelWriter |
setStyleSet(StyleSet styleSet)
设置样式集,如果不使用样式,传入
null |
ExcelWriter |
write(Iterable<?> data)
写出数据,本方法只是将数据写入Workbook中的Sheet,并不写出到文件
写出的起始行为当前行号,可使用
getCurrentRow()方法调用,根据写出的的行数,当前行号自动增加
样式为默认样式,可使用getCellStyle()方法调用后自定义默认样式
默认的,当当前行号为0时,写出标题(如果为Map或Bean),否则不写标题 |
ExcelWriter |
write(Iterable<?> data,
boolean isWriteKeyAsHead)
写出数据,本方法只是将数据写入Workbook中的Sheet,并不写出到文件
写出的起始行为当前行号,可使用
getCurrentRow()方法调用,根据写出的的行数,当前行号自动增加
样式为默认样式,可使用getCellStyle()方法调用后自定义默认样式 |
ExcelWriter |
write(Iterable<?> data,
Comparator<String> comparator)
写出数据,本方法只是将数据写入Workbook中的Sheet,并不写出到文件
写出的起始行为当前行号,可使用
getCurrentRow()方法调用,根据写出的的行数,当前行号自动增加
样式为默认样式,可使用getCellStyle()方法调用后自定义默认样式
data中元素支持的类型有: |
ExcelWriter |
writeCellValue(int x,
int y,
Object value)
给指定单元格赋值,使用默认单元格样式
|
ExcelWriter |
writeHeadRow(Iterable<?> rowData)
写出一行标题数据
本方法只是将数据写入Workbook中的Sheet,并不写出到文件
写出的起始行为当前行号,可使用
getCurrentRow()方法调用,根据写出的的行数,当前行号自动+1
样式为默认标题样式,可使用getHeadCellStyle()方法调用后自定义默认样式 |
ExcelWriter |
writeRow(Iterable<?> rowData)
写出一行数据
本方法只是将数据写入Workbook中的Sheet,并不写出到文件
写出的起始行为当前行号,可使用
getCurrentRow()方法调用,根据写出的的行数,当前行号自动+1
样式为默认样式,可使用getCellStyle()方法调用后自定义默认样式 |
ExcelWriter |
writeRow(Map<?,?> rowMap,
boolean isWriteKeyAsHead)
将一个Map写入到Excel,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values
如果rowMap为空(包括null),则写出空行
|
ExcelWriter |
writeRow(Object rowBean,
boolean isWriteKeyAsHead)
写出一行,根据rowBean数据类型不同,写出情况如下:
|
getCell, getCell, getColumnCount, getColumnCount, getOrCreateCell, getOrCreateCellStyle, getOrCreateColumnStyle, getOrCreateRow, getOrCreateRowStyle, getPhysicalRowCount, getRowCount, getSheet, getSheetCount, getSheetNames, getSheets, getWorkbookprotected File destFile
public ExcelWriter()
flush(OutputStream)方法写出到流
若写出到文件,还需调用setDestFile(File)方法自定义写出的文件,然后调用flush()方法写出到文件public ExcelWriter(boolean isXlsx)
flush(OutputStream)方法写出到流
若写出到文件,需要调用flush(File) 写出到文件isXlsx - 是否为xlsx格式public ExcelWriter(String destFilePath)
destFilePath - 目标文件路径,可以不存在public ExcelWriter(boolean isXlsx,
String sheetName)
flush(OutputStream)方法写出到流
若写出到文件,需要调用flush(File) 写出到文件isXlsx - 是否为xlsx格式sheetName - sheet名,第一个sheet名并写出到此sheet,例如sheet1public ExcelWriter(String destFilePath, String sheetName)
destFilePath - 目标文件路径,可以不存在sheetName - sheet名,第一个sheet名并写出到此sheet,例如sheet1public ExcelWriter(File destFile)
destFile - 目标文件,可以不存在public ExcelWriter(File destFile, String sheetName)
destFile - 目标文件,可以不存在sheetName - sheet名,做为第一个sheet名并写出到此sheet,例如sheet1public ExcelWriter(org.apache.poi.ss.usermodel.Workbook workbook,
String sheetName)
flush(OutputStream)方法写出到流
若写出到文件,还需调用setDestFile(File)方法自定义写出的文件,然后调用flush()方法写出到文件workbook - WorkbooksheetName - sheet名,做为第一个sheet名并写出到此sheet,例如sheet1public ExcelWriter(org.apache.poi.ss.usermodel.Sheet sheet)
flush(OutputStream)方法写出到流
若写出到文件,还需调用setDestFile(File)方法自定义写出的文件,然后调用flush()方法写出到文件sheet - Sheetpublic ExcelWriter setSheet(int sheetIndex)
ExcelBasesetSheet in class ExcelBase<ExcelWriter>sheetIndex - sheet序号,从0开始计数public ExcelWriter setSheet(String sheetName)
ExcelBasesetSheet in class ExcelBase<ExcelWriter>sheetName - sheet名public ExcelWriter reset()
1. 当前行游标归零 2. 清空别名比较器
public ExcelWriter renameSheet(String sheetName)
sheetName - 新的sheet名public ExcelWriter renameSheet(int sheet, String sheetName)
sheet - sheet需要,0表示第一个sheetsheetName - 新的sheet名public ExcelWriter autoSizeColumnAll()
public ExcelWriter autoSizeColumn(int columnIndex)
columnIndex - 第几列,从0计数public ExcelWriter autoSizeColumn(int columnIndex, boolean useMergedCells)
columnIndex - 第几列,从0计数useMergedCells - 是否适用于合并单元格public StyleSet getStyleSet()
1. 头部样式 2. 一般单元格样式 3. 默认数字样式 4. 默认日期样式
public ExcelWriter setStyleSet(StyleSet styleSet)
nullstyleSet - 样式集,null表示无样式public org.apache.poi.ss.usermodel.CellStyle getHeadCellStyle()
public org.apache.poi.ss.usermodel.CellStyle getCellStyle()
public int getCurrentRow()
public ExcelWriter setCurrentRow(int rowIndex)
rowIndex - 行号public ExcelWriter passCurrentRow()
public ExcelWriter passRows(int rows)
rows - 跳过的行数public ExcelWriter resetRow()
public ExcelWriter setDestFile(File destFile)
destFile - 目标文件public ExcelWriter setHeaderAlias(Map<String,String> headerAlias)
headerAlias - 标题别名public ExcelWriter clearHeaderAlias()
public ExcelWriter setOnlyAlias(boolean isOnlyAlias)
isOnlyAlias - 是否只保留别名中的字段值public ExcelWriter addHeaderAlias(String name, String alias)
name - 原标题alias - 别名public ExcelWriter setColumnWidth(int columnIndex, int width)
columnIndex - 列号(从0开始计数,-1表示所有列的默认宽度)width - 宽度(单位1~256个字符宽度)public ExcelWriter setRowHeight(int rownum, int height)
rownum - 行号(从0开始计数,-1表示所有行的默认高度)height - 高度public ExcelWriter setHeaderOrFooter(String text, Align align, boolean isFooter)
text - 页脚的文本align - 对齐方式枚举 AlignisFooter - 是否为页脚,false表示页眉,true表示页脚public ExcelWriter merge(int lastColumn)
getHeadCellStyle()方法调用后自定义默认样式lastColumn - 合并到的最后一个列号public ExcelWriter merge(int lastColumn, Object content)
getHeadCellStyle()方法调用后自定义默认样式lastColumn - 合并到的最后一个列号content - 合并单元格后的内容public ExcelWriter merge(int lastColumn, Object content, boolean isSetHeaderStyle)
getHeadCellStyle()方法调用后自定义默认样式lastColumn - 合并到的最后一个列号content - 合并单元格后的内容isSetHeaderStyle - 是否为合并后的单元格设置默认标题样式public ExcelWriter merge(int firstRow, int lastRow, int firstColumn, int lastColumn, Object content, boolean isSetHeaderStyle)
getHeadCellStyle()方法调用后自定义默认样式firstRow - 第一行lastRow - 最后一行firstColumn - 第一列lastColumn - 合并到的最后一个列号content - 合并单元格后的内容isSetHeaderStyle - 是否为合并后的单元格设置默认标题样式public ExcelWriter write(Iterable<?> data)
getCurrentRow()方法调用,根据写出的的行数,当前行号自动增加
样式为默认样式,可使用getCellStyle()方法调用后自定义默认样式
默认的,当当前行号为0时,写出标题(如果为Map或Bean),否则不写标题
data中元素支持的类型有:
1. Iterable,既元素为一个集合,元素被当作一行,data表示多行 2. Map,既元素为一个Map,第一个Map的keys作为首行,剩下的行为Map的values,data表示多行 3. Bean,既元素为一个Bean,第一个Bean的字段名列表会作为首行,剩下的行为Bean的字段值列表,data表示多行 4. 其它类型,按照基本类型输出(例如字符串)
data - 数据public ExcelWriter write(Iterable<?> data, boolean isWriteKeyAsHead)
getCurrentRow()方法调用,根据写出的的行数,当前行号自动增加
样式为默认样式,可使用getCellStyle()方法调用后自定义默认样式
data中元素支持的类型有:
1. Iterable,既元素为一个集合,元素被当作一行,data表示多行 2. Map,既元素为一个Map,第一个Map的keys作为首行,剩下的行为Map的values,data表示多行 3. Bean,既元素为一个Bean,第一个Bean的字段名列表会作为首行,剩下的行为Bean的字段值列表,data表示多行 4. 其它类型,按照基本类型输出(例如字符串)
data - 数据isWriteKeyAsHead - 是否强制写出标题行(Map或Bean)public ExcelWriter write(Iterable<?> data, Comparator<String> comparator)
getCurrentRow()方法调用,根据写出的的行数,当前行号自动增加
样式为默认样式,可使用getCellStyle()方法调用后自定义默认样式
data中元素支持的类型有:
1. Map,既元素为一个Map,第一个Map的keys作为首行,剩下的行为Map的values,data表示多行 2. Bean,既元素为一个Bean,第一个Bean的字段名列表会作为首行,剩下的行为Bean的字段值列表,data表示多行
data - 数据comparator - 比较器,用于字段名的排序public ExcelWriter writeHeadRow(Iterable<?> rowData)
getCurrentRow()方法调用,根据写出的的行数,当前行号自动+1
样式为默认标题样式,可使用getHeadCellStyle()方法调用后自定义默认样式rowData - 一行的数据public ExcelWriter writeRow(Object rowBean, boolean isWriteKeyAsHead)
1、如果为Iterable,直接写出一行 2、如果为Map,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values 3、如果为Bean,转为Map写出,isWriteKeyAsHead为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行values
rowBean - 写出的BeanisWriteKeyAsHead - 为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行valueswriteRow(Iterable),
writeRow(Map, boolean)public ExcelWriter writeRow(Map<?,?> rowMap, boolean isWriteKeyAsHead)
rowMap - 写出的Map,为空(包括null),则写出空行isWriteKeyAsHead - 为true写出两行,Map的keys做为一行,values做为第二行,否则只写出一行valuespublic ExcelWriter writeRow(Iterable<?> rowData)
getCurrentRow()方法调用,根据写出的的行数,当前行号自动+1
样式为默认样式,可使用getCellStyle()方法调用后自定义默认样式rowData - 一行的数据public ExcelWriter writeCellValue(int x, int y, Object value)
x - X坐标,从0计数,既列号y - Y坐标,从0计数,既行号value - 值public org.apache.poi.ss.usermodel.Font createFont()
public ExcelWriter flush() throws InstrumentException
NullPointerException
预定义文件可以通过setDestFile(File) 方法预定义,或者通过构造定义InstrumentException - IO异常public ExcelWriter flush(File destFile) throws InstrumentException
InstrumentExceptiondestFile - 写出到的文件InstrumentException - IO异常public ExcelWriter flush(OutputStream out) throws InstrumentException
out - 输出流InstrumentException - IO异常public ExcelWriter flush(OutputStream out, boolean isCloseOut) throws InstrumentException
out - 输出流isCloseOut - 是否关闭输出流InstrumentException - IO异常public void close()
close in interface Closeableclose in interface AutoCloseableclose in class ExcelBase<ExcelWriter>protected void closeWithoutFlush()
Copyright © 2019. All rights reserved.