Apache POI实现导入导出Excel文件之XSSFWorkBook类及其相关联类常用API解读

Apache POI简介

Apache POI 是Apache软件基金会开发使用Java分布式设计或修改Microsoft Office文件的开源库。它提供 API 给Java程序对Microsoft Office格式档案读和写的功能。
org.apache.poi.hssf.usermodel和org.apache.poi.xssf.usermodel包下的HSSFWorkbook类与XSSFWorkbook类分别用于操作Microsoft Excel 2003及以下(.xls格式)和 Microsoft Excel 2007及以上(.xlsx)文件

以XSSFWorkbook为例讲一下常用API
XSSFWorkbook API大全请参考链接文档:http://poi.apache.org/apidocs/dev/index.html
2.1 XSSFWorkbook对象常用构造方法
构造方法名 构造方法说明
XSSFWorkbook() 创建一个新的XSSFWorkbook实例,工作簿内容为空,用于向工作簿表格中写入内容
XSSFWorkbook(java.io.File file) 通过读取一个给定的excel文件,创建一个XSSFWorkbook实例,用于excel文件中读取内容
XSSFWorkbook(XSSFFactory factory) 通过传入一个XSSFFactory类型参数创建一个新的XSSFWorkbook实例
XSSFWorkbook(XSSFWorkbookType workbookType) 通过传入一个XSSFWorkbookType枚举型参数创建一个新的XSSFWorkbook实例,有XLSX和XLSM两个枚举;可通过workbookType.getContentType()和workbookType.getExtension() 获取内容类型和工作簿后缀
2.2 XSSFWorkbook对象常用实例方法
访问修饰符与返回类型 方法名及参数 方法说明
XSSFSheet createSheet(java.lang.String sheetname) 创建一个具有给定名字的XSSFSheet实例
XSSFSheet cloneSheet(int sheetNum, java.lang.String newName) 克隆一个对应索引值的sheet实例,并设置给定的sheet名称
XSSFCellStyle createCellStyle() 创建单元格样式实例
XSSFDataFormat createDataFormat() 创建单元格日期格式实例
XSSFFont createFont() 创建字体实例
int getActiveSheetIndex() 获取工作簿中选中的sheet索引值
int getNumberOfSheets() 获取工作簿中sheet的数量
Sheet getSheet(java.lang.String name) 根据sheet的名获取Sheet对象
Sheet getSheetAt(int index) 根据工作簿中sheet的索引值获取Sheet对象
boolean isSheetHidden(int sheetIx) 根据sheet在工作簿中的索引值判断sheet是否处于隐藏状态
void removeSheetAt(int index) 根据sheet索引值删除对应的sheet对象
void setSheetHidden(int sheetIx, boolean hidden) 设置对应sheet索引处的sheet是否隐藏
void setSheetName(int sheet, java.lang.String name) 设置对应sheet索引处的sheet名称
void setSheetOrder(java.lang.String sheetname, int pos) 设置工作簿中对应sheet名的sheet的索引位置,可用于调整sheet在workbook中的顺序
java.util.Iterator sheetIterator() 获取工作簿中sheet集合的迭代器
void write(java.io.OutputStream stream) 将当前工作簿写入到输出流中
2.3 XSSFSheet类常用方法
返回类型 方法名 方法说明
void addHyperlink(XSSFHyperlink hyperlink) 向sheet实例中的超链接集合添加一个超链接
void addIgnoredErrors(CellRangeAddress region, IgnoredErrorType… ignoredErrorTypes) 忽略单元格区域的错误
int addMergedRegion(CellRangeAddress region) 合并单元格
void addValidationData(DataValidation dataValidation) 创建一个数据验证对象
void autoSizeColumn(int column) 设置列索引处的列宽根据单元格列内容长度调整列宽大小
void autoSizeColumn(int column, boolean useMergedCells) 同上,第二个参数为是否使用合并单元格标识
void copyRows(int srcStartRow, int srcEndRow, int destStartRow, CellCopyPolicy cellCopyPolicy) 批量拷贝行,srcStartRow参数为拷贝源开始行号;srcEndRow参数为拷贝源结束行号;destStartRow参数为拷贝目标位置开始行号;cellCopyPolicy参数为单元格拷贝规则
void copyRows(java.util.List<? extends Row> srcRows, int destStartRow, CellCopyPolicy policy) 批量拷贝行,srcRows参数为拷贝源行集合;destStartRow为拷贝目标位置开始行号;policy参数为单元格拷贝规则
XSSFRow createRow(int rownum) 在Sheet实例的rownum行位置处创建新的XSSFRow实例,若该位置之前存在XSSFRow实例,则会覆盖掉原来的
XSSFTable createTable(AreaReference tableArea) 根据传入的AreaReference实例参数创建一个与当前sheet关联的XSSFTable实例
void disableLocking() 禁用当前sheet保护
void enableLocking() 开启当前sheet保护
CellAddress getActiveCell() 获取选中的单元格区域
XSSFComment getCellComment(CellAddress address) 获取指定单元格区域的注释
ColumnHelper getColumnHelper() 获取本sheet实例的列助手ColumnHelper对象实例
CellStyle getColumnStyle(int column) 根据列索引获取该列的单元格样式CellStyle实例
int getColumnWidth(int columnIndex) 根据列索引获取列宽,单位为1/256个字符宽度
float getColumnWidthInPixels(int columnIndex) 获取列索引值处的列宽,单位为像素
java.util.List getDataValidations() 获取本sheet实例的数据验证器列表
int getDefaultColumnWidth() 获取默认的列宽,单位为1/256个字符宽度
float getDefaultRowHeightInPoints() 获取默认的列宽,单位为像素
Header getFirstHeader() 获取sheet的第一个页头实例
Footer getFirstFooter() 获取sheet的第一个页脚实例
int getFirstRowNum() 获取sheet的第1行索引
int getPhysicalNumberOfRows() 获取sheet中实际具有单元格内容的行数
CellRangeAddress getMergedRegion(int index) 根据索引获取合并的单元格区域地址
java.util.List getMergedRegions() 获取sheet中合并的单元格集合
int getNumHyperlinks() 获取sheet中超链接数目
int getNumMergedRegions() 获取合并的单元格数目
java.util.List getTables() 获取关联本sheet的XSSFTable集合
XSSFWorkbook getWorkbook() 获取sheet所属的工作簿实例
void groupColumn(int fromColumn, int toColumn) 合并列,fromColumn参数为起始列索引;toColumn参数为结束列索引
void groupRow(int fromRow, int toRow) 合并行,fromRow参数为起始行索引;toRow参数为结束行索引
java.util.Iterator iterator() 获取sheet中的行集合迭代器,包括无内容的行
java.util.Iterator rowIterator() 获取有内容的行迭代器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章