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() 獲取有內容的行迭代器
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章