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