- Apache POI 教程
- Apache POI - 首頁
- Apache POI - 概述
- Apache POI - Java Excel API
- Apache POI - 環境
- Apache POI - 核心類
- Apache POI - 工作簿
- Apache POI - 電子表格
- Apache POI - 單元格
- Apache POI - 字型
- Apache POI - 公式
- Apache POI - 超連結
- Apache POI - 列印區域
- Apache POI - 資料庫
- Apache POI 資源
- Apache POI - 常見問題解答
- Apache POI - 快速指南
- Apache POI - 有用資源
- Apache POI - 討論
Apache POI - 核心類
本章解釋Apache POI API下一些對使用Java程式處理Excel檔案至關重要的類和方法。
Workbook(工作簿)
這是所有建立或維護Excel工作簿類的超介面。它屬於org.apache.poi.ss.usermodel包。實現此介面的兩個類如下:
HSSFWorkbook - 此類具有讀取和寫入.xls格式的Microsoft Excel檔案的方法。它與MS-Office 97-2003版本相容。
XSSFWorkbook - 此類具有讀取和寫入.xls或.xlsx格式的Microsoft Excel和OpenOffice xml檔案的方法。它與MS-Office 2007或更高版本相容。
HSSFWorkbook
它是org.apache.poi.hssf.usermodel包下的高階類。它實現了Workbook介面,用於.xls格式的Excel檔案。以下是此類下的一些方法和建構函式。
類建構函式
| 序號 | 建構函式和說明 |
|---|---|
| 1 | HSSFWorkbook() 建立一個新的HSSFWorkbook物件。 |
| 2 | HSSFWorkbook(DirectoryNode directory, boolean preserveNodes) 在特定目錄內建立一個新的HSSFWworkbook物件。 |
| 3 | HSSFWorkbook(DirectoryNode directory, POIFSFileSystem fs, boolean preserveNodes) 給定一個POIFSFileSystem物件和其中的特定目錄,它建立一個SSFWorkbook物件來讀取指定的工作簿。 |
| 4 | HSSFWorkbook(java.io.InputStream s) 使用輸入流建立一個新的HSSFWorkbook物件。 |
| 5 | HSSFWorkbook(java.io.InputStream s, boolean preserveNodes) 圍繞您的輸入流構建一個POI檔案系統。 |
| 6 | HSSFWorkbook(POIFSFileSystem fs) 使用POIFSFileSystem物件構造一個新的HSSFWorkbook物件。 |
| 7 | HSSFWorkbook(POIFSFileSystem fs, boolean preserveNodes) 給定一個POIFSFileSystem物件,它建立一個新的HSSFWorkbook物件來讀取指定的工作簿。 |
這些建構函式中常用的引數是:
directory - 要從中處理的POI檔案系統目錄。
fs - 包含工作簿流的POI檔案系統。
preservenodes - 這是一個可選引數,決定是否保留其他節點(如宏)。因為它將所有POIFileSystem儲存在記憶體中(如果設定),所以會消耗大量記憶體。
注意 - HSSFWorkbook類包含許多方法;但是它們只與xls格式相容。在本教程中,重點是最新版本的Excel檔案格式。因此,這裡沒有列出HSSFWorkbook的類方法。如果您需要這些類方法,請參考POI-HSSFWorkbook類API:https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html。
XSSFWorkbook
這是一個用於表示高階和低階Excel檔案格式的類。它屬於org.apache.xssf.usemodel包並實現Workbook介面。以下是此類下的一些方法和建構函式。
類建構函式
| 序號 | 建構函式和說明 |
|---|---|
| 1 | XSSFWorkbook() 建立一個新的XSSFworkbook物件。 |
| 2 | XSSFWorkbook(java.io.File file) 從給定檔案構造一個XSSFWorkbook物件。 |
| 3 | XSSFWorkbook(java.io.InputStream is) 構造一個XSSFWorkbook物件,方法是將整個輸入流緩衝到記憶體中,然後為其開啟一個OPCPackage物件。 |
| 4 | XSSFWorkbook(java.lang.String path) 給定檔案的完整路徑,構造一個XSSFWorkbook物件。 |
類方法
| 序號 | 方法和說明 |
|---|---|
| 1 | createSheet() 為該工作簿建立一個XSSFSheet,將其新增到工作表中,並返回高階表示。 |
| 2 | createSheet(java.lang.String sheetname) 為該工作簿建立一個新工作表並返回高階表示。 |
| 3 | createFont() 建立一個新字型並將其新增到工作簿的字體表中。 |
| 4 | createCellStyle() 建立一個新的XSSFCellStyle並將其新增到工作簿的樣式表中。 |
| 5 | createFont() 建立一個新字型並將其新增到工作簿的字體表中。 |
| 6 | setPrintArea(int sheetIndex, int startColumn, int endColumn, int startRow,int endRow) 根據指定引數設定給定工作表的列印區域。 |
有關此類的其餘方法,請參考完整的API文件:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFWorkbook.html。
Sheet(工作表)
Sheet是org.apache.poi.ss.usermodel包下的一個介面,它是所有建立具有特定名稱的高階或低階電子表格類的超介面。最常見的電子表格型別是工作表,它表示為單元格網格。
HSSFSheet
這是org.apache.poi.hssf.usermodel包下的一個類。它可以建立Excel電子表格,並允許格式化工作表樣式和工作表資料。
類建構函式
| 序號 | 建構函式和說明 |
|---|---|
| 1 | HSSFSheet(HSSFWorkbook workbook) 由HSSFWorkbook呼叫以從頭建立一個名為HSSFSheet的新工作表。 |
| 2 | HSSFSheet(HSSFWorkbook workbook, InternalSheet sheet) 建立一個代表給定工作表物件的HSSFSheet。 |
XSSFSheet
這是一個表示Excel電子表格高階表示的類。它位於org.apache.poi.hssf.usermodel包下。
類建構函式
| 序號 | 建構函式和說明 |
|---|---|
| 1 | XSSFSheet() 建立一個新的XSSFSheet - 由XSSFWorkbook呼叫以從頭建立一個工作表。 |
| 2 | XSSFSheet(PackagePart part, PackageRelationship rel) 建立一個代表給定包部件和關係的XSSFSheet。 |
類方法
| 序號 | 方法和說明 |
|---|---|
| 1 | addMergedRegion(CellRangeAddress region) 新增一個合併的單元格區域(因此這些單元格形成一個單元格)。 |
| 2 | autoSizeColumn(int column) 調整列寬以適合內容。 |
| 3 | iterator() 此方法是rowIterator()的別名,允許使用foreach迴圈。 |
| 4 | addHyperlink(XSSFHyperlink hyperlink) 在此工作表的超連結集合中註冊一個超連結。 |
有關此類的其餘方法,請參考完整的API:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFSheet.html。
Row(行)
這是一個位於org.apache.poi.ss.usermodel包下的介面。它用於電子表格行的高階表示。它是所有代表POI庫中行的類的超介面。
XSSFRow
這是一個位於org.apache.poi.xssf.usermodel包下的類。它實現了Row介面,因此它可以在電子表格中建立行。以下是此類下的一些方法和建構函式。
類方法
| 序號 | 方法和說明 |
|---|---|
| 1 | createCell(int columnIndex) 在行內建立新的單元格並返回它。 |
| 2 | setHeight(short height) 以短單位設定高度。 |
有關此類的其餘方法,請訪問以下連結:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFRow.html
Cell(單元格)
這是一個位於org.apache.poi.ss.usermodel包下的介面。它是所有代表電子表格行中單元格的類的超介面。
單元格可以採用各種屬性,例如空白、數字、日期、錯誤等。單元格在新增到行之前應該有自己的編號(基於0)。
XSSFCell
這是一個位於org.apache.poi.xssf.usermodel包下的類。它實現了Cell介面。它是電子表格行中單元格的高階表示。
類方法
| 序號 | 方法和說明 |
|---|---|
| 1 | setCellStyle(CellStyle style) 設定單元格的樣式。 |
| 2 | setCellType(int cellType) 設定單元格的型別(數字、公式或字串)。 |
| 3 | setCellValue(boolean value) 為單元格設定布林值。 |
| 4 | setCellValue(java.util.Calendar value) 為單元格設定日期值。 |
| 5 | setCellValue(double value) 為單元格設定數值。 |
| 6 | setCellValue(java.lang.String str) 為單元格設定字串值。 |
| 7 | setHyperlink(Hyperlink hyperlink) 為單元格分配超連結。 |
有關此類的其餘方法和欄位,請訪問以下連結:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCell.html
XSSFCellStyle
這是一個位於org.apache.poi.xssf.usermodel包下的類。它將提供有關電子表格單元格中內容格式的可能資訊。它還提供修改該格式的選項。它實現了CellStyle介面。
類建構函式
| 序號 | 建構函式和說明 |
|---|---|
| 1 | XSSFCellStyle(int cellXfId, int cellStyleXfId, StylesTable stylesSource, ThemesTable theme) 從提供的部件建立單元格樣式。 |
| 2 | XSSFCellStyle(StylesTable stylesSource) 建立一個空的單元格樣式。 |
類方法
| 序號 | 方法和說明 |
|---|---|
| 1 | setAlignment(short align) 設定單元格的水平對齊型別。 |
| 2 | setBorderBottom(short border) 設定單元格底部邊框的邊框型別。 |
| 3 | setBorderColor(XSSFCellBorder.BorderSide side, XSSFColor color) 設定所選邊框的顏色。 |
| 4 | setBorderLeft(Short border) 設定單元格左邊框的邊框型別。 |
| 5 | setBorderRight(short border) 設定單元格右邊框的邊框型別。 |
| 6 | setBorderTop(short border) 設定單元格頂部邊框的邊框型別。 |
| 7 | setFillBackgroundColor(XSSFColor color) 設定表示為XSSFColor值的背景填充顏色。 |
| 8 | setFillForegroundColor(XSSFColor color) 設定表示為XSSFColor值的前景填充顏色。 |
| 9 | setFillPattern(short fp) 指定單元格填充資訊,用於圖案和純色單元格填充。 |
| 10 | setFont(Font font) 設定此樣式的字型。 |
| 11 | setRotation(short rotation) 設定單元格中文字的旋轉角度。 |
| 12 | setVerticalAlignment(short align) 設定單元格的垂直對齊型別。 |
有關此類中的其餘方法和欄位,請訪問以下連結:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCellStyle.html
HSSFColor
這是一個位於org.apache.poi.hssf.util包下的類。它提供不同的顏色作為巢狀類。通常,這些巢狀類使用它們自己的索引來表示。它實現了Color介面。
巢狀類
此類所有巢狀類都是靜態的,每個類都有其索引。這些巢狀顏色類用於單元格格式化,例如單元格內容、邊框、前景和背景。以下是一些巢狀類。
| 序號 | 類名(顏色) |
|---|---|
| 1 | HSSFColor.AQUA |
| 2 | HSSFColor.AUTOMATIC |
| 3 | HSSFColor.BLACK |
| 4 | HSSFColor.BLUE |
| 5 | HSSFColor.BRIGHT_GREEN |
| 6 | HSSFColor.BRIGHT_GRAY |
| 7 | HSSFColor.CORAL |
| 8 | HSSFColor.DARK_BLUE |
| 9 | HSSFColor.DARK_GREEN |
| 10 | HSSFColor.SKY_BLUE |
| 11 | HSSFColor.WHITE |
| 12 | HSSFColor.YELLOW |
類方法
此類只有一個重要的方法,用於獲取索引值。
| 序號 | 方法和說明 |
|---|---|
| 1 | getIndex() 此方法用於獲取巢狀類的索引值。 |
有關其餘方法和巢狀類,請參考以下連結:https://poi.apache.org/apidocs/org/apache/poi/hssf/util/HSSFColor.html
XSSFColor
這是org.apache.poi.xssf.usermodel包下的一個類。它用於表示電子表格中的顏色,並實現Color介面。下面列出了一些它的方法和建構函式。
類建構函式
| 序號 | 建構函式和說明 |
|---|---|
| 1 | XSSFColor() 建立一個新的XSSFColor例項。 |
| 2 | XSSFColor(byte[] rgb) 使用RGB建立一個新的XSSFColor例項。 |
| 3 | XSSFColor(java.awt.Color clr) 使用awt包中的Color類建立一個新的XSSFColor例項。 |
類方法
| 序號 | 方法和說明 |
|---|---|
| 1 | setAuto(boolean auto) 設定一個布林值,以指示ctColor是自動的,並且系統ctColor是依賴的。 |
| 2 | setIndexed(int indexed) 將索引ctColor值設定為系統ctColor。 |
有關其餘方法,請訪問以下連結:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFColor.html
XSSFFont
這是org.apache.poi.xssf.usermodel包下的一個類。它實現了Font介面,因此可以處理工作簿中的不同字型。
類建構函式
| 序號 | 建構函式和說明 |
|---|---|
| 1 | XSSFFont() 建立一個新的XSSFFont例項。 |
類方法
| 序號 | 方法和說明 |
|---|---|
| 1 | setBold(boolean bold) 為“粗體”屬性設定布林值。 |
| 2 | setColor(short color) 設定字型的索引顏色。 |
| 3 | setColor(XSSFColor color) 設定字型的標準Alpha RGB顏色值。 |
| 4 | setFontHeight(short height) 設定字型的磅值高度。 |
| 5 | setFontName(java.lang.String name) 設定字型的名稱。 |
| 6 | setItalic(boolean italic) 為“斜體”屬性設定布林值。 |
有關其餘方法,請訪問以下連結:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFFont.html
XSSFHyperlink
這是org.apache.poi.xssf.usermodel包下的一個類。它實現了Hyperlink介面,用於將超連結設定到電子表格的單元格內容。
類方法
| 序號 | 方法和說明 |
|---|---|
| 1 | setAddress(java.lang.String address) 超連結地址。 |
有關其餘方法,請訪問以下連結:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFHyperlink.html
XSSFCreationHelper
這是org.apache.poi.xssf.usermodel包下的一個類。它實現了CreationHelper介面,用作公式計算和設定超連結的支援類。
類方法
| 序號 | 方法和說明 |
|---|---|
| 1 | createFormulaEvaluator() 建立一個XSSFFormulaEvaluator例項,該物件用於計算公式單元格。 |
| 2 | createHyperlink(int type) 建立一個新的XSSFHyperlink。 |
有關其餘方法,請參考以下連結:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCreationHelper.html
XSSFPrintSetup
這是org.apache.poi.xsssf.usermodel包下的一個類。它實現了PrintSetup介面,用於設定列印頁面大小、區域、選項和設定。
類方法
| 序號 | 方法和說明 |
|---|---|
| 1 | setLandscape(boolean ls) 設定一個布林值以允許或阻止橫向列印。 |
| 2 | setLeftToRight(boolean ltor) 設定列印時是否從左到右或從上到下排序。 |
| 3 | setPaperSize(short size) 設定紙張大小。 |
有關其餘方法,請訪問以下連結:https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFPrintSetup.html