POI核心類


本章介紹了Apache POI的API,它是至關重要的工作,使用Java程式操作Excel檔案有下面幾個類和方法。

工作簿

這是建立或維護Excel工作簿的所有類的超介面。它屬於org.apache.poi.ss.usermodel包。是實現此介面的兩個類,如下所示:

  • HSSFWorkbook : 這個類有讀取和.xls 格式和寫入Microsoft Excel檔案的方法。它與微軟Office97-2003版本相容。

  • XSSFWorkbook : 這個類有讀寫Microsoft Excel和OpenOffice的XML檔案的格式.xls或.xlsx的方法。它與MS-Office版本2007或更高版本相容。

HSSFWorkbook

它是在org.apache.poi.hssf.usermodel包的高層次的類。它實現了Workbook 介面,用於Excel檔案中的.xls格式。下面列出的是一些本類下的方法和建構函式。

類別建構函式

S.No. 建構函式和說明
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介面。下面列出的是這個類的方法和建構函式。

類別建構函式

S.No. 建構函式和說明
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物件。

類方法

S.No. 方法及描述
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文件:http://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電子試算表,它允許在sheet 方式和表資料格式。

類別建構函式

S.No. 建構函式及描述
1

HSSFSheet(HSSFWorkbook workbook)

建立新HSSFSheet通過呼叫HSSFWorkbook從頭開始建立一個表。

2

HSSFSheet(HSSFWorkbook workbook, InternalSheet sheet)

建立HSSFSheet表示給定表物件。

XSSFSheet

這是代表了Excel電子試算表的高階別代表的一類。這在org.apache.poi.hssf.usermodel包下。

類別建構函式

S.No. 建構函式及描述
1

XSSFSheet()

創造了新的XSSFSheet- 呼叫XSSFWorkbook從頭開始建立一個表。

2

XSSFSheet(PackagePart part, PackageRelationship rel)

建立XSSFSheet表示給定包的一部分和關係。

類方法

S.No. 方法和描述
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.

這是在org.apache.poi.ss.usermodel包的介面。它是用於一排的電子試算表的高層表示。它是代表了POI庫的行所有類的超介面。

XSSFRow

這是在org.apache.poi.xssf.usermodel包的類。它實現了Row介面,因此它可以在電子試算表中建立行。下面列出的是這個類在方法和建構函式。

類方法

S.No. 描述
1

createCell(int columnIndex)

建立新單元行並返回。

2

setHeight(short height)

設定短單位的高度。

對於此類的其餘的方法,參考如下連結:
https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFRow.html

單元格

這是在org.apache.poi.ss.usermodel包的介面。它是代表了單元在電子試算表中的行中的所有類的超介面。

單元格可以使用各種屬性,例如空白,數位,日期,錯誤等單元格被新增到一個行之前應具有(基於0)自己的編號。

XSSFCell

這是在 org.apache.poi.xssf.usermodel 包的類。它實現了單元格介面。它是單元在電子試算表中的行的一個高層次的表示。

欄位摘要

下面列出的是一些XSSFCell類的欄位以及它們的描述。

單元格型別 描述
CELL_TYPE_BLANK 代表空白單元格
CELL_TYPE_BOOLEAN 代表布林單元(true或false)
CELL_TYPE_ERROR 表示在單元的誤差值
CELL_TYPE_FORMULA 表示一個單元格公式的結果
CELL_TYPE_NUMERIC 表示對一個單元的數位資料
CELL_TYPE_STRING 表示對一個單元串(文字)

類方法

S.No. 描述
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介面。

欄位摘要

下表列出了從CellStyle介面繼承一些欄位。

欄位名稱 欄位描述
ALIGN_CENTER 中心對齊單元格內容
ALIGN_CENTER_SELECTION 中心選擇水平對齊方式
ALIGN_FILL 單元格適應於內容的大小
ALIGN_JUSTIFY 適應單元格內容的寬度
ALIGN_LEFT 左對齊單元格內容
ALIGN_RIGHT 右對齊單元格內容
BORDER_DASH_DOT 使用破折號和點單元格樣式
BORDER_DOTTED 用虛線邊框的單元格樣式
BORDER_DASHED 用虛線邊框的單元格樣式
BORDER_THICK 厚厚的邊框單元格樣式
BORDER_THIN 薄邊框的單元格樣式
VERTICAL_BOTTOM 對齊單元格內容的垂直下方
VERTICAL_CENTER 對齊單元格內容垂直居中
VERTICAL_JUSTIFY 對齊和垂直對齊的單元格內容
VERTICAL_TOP 頂部對齊為垂直對齊

類別建構函式

S.No. 建構函式及描述
1

XSSFCellStyle(int cellXfId, int cellStyleXfId, StylesTable stylesSource, ThemesTable theme)

建立一個單元格樣式,從所提供的部分

2

XSSFCellStyle(StylesTable stylesSource)

建立一個空的單元樣式

類方法

設定邊框的型別為單元格的底部邊界

S.No 方法及描述
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介面。

巢狀類

所有巢狀類這個類是靜態的,每個類都有其索引。這些巢狀色類用於單元格格式,如單元格內容,邊框,前景和背景。下面列出了一些的巢狀類。

S.No. 類名(顏色)
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

類方法

這個類的只有一個方法是很重要的,並且用於獲取索引值。

S.No. 方法和描述
1

getIndex()

這種方法被用來獲得一個巢狀類的索引值

對於其餘的方法和巢狀類,請參閱以下連結:
https://poi.apache.org/apidocs/org/apache/poi/hssf/util/HSSFColor.html.

XSSFColor

這是在org.apache.poi.xssf.usermodel包的類。它是用來表示在電子試算表中的顏色。它實現了顏色的介面。下面列出的是它的一些方法和建構函式。

類別建構函式

S.No. Constructor and 描述
1

XSSFColor()

建立XSSFColor的新範例。

2

XSSFColor(byte[] rgb)

建立XSSFColor使用RGB的新範例。

3

XSSFColor(java.awt.Color clr)

建立XSSFColor使用Color類從AWT包的新範例。

類方法

S.No. 方法和描述
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介面,因此它可以處理工作簿中不同的字型。

類別建構函式

S.No. 建構函式和描述
1

XSSFFont()

建立一個新的XSSFont範例。

類方法

S.No. 方法和描述
1

setBold(boolean bold)

設定“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)

設定“italic”屬性一個布林值。

對於其餘的方法,通過以下連結:
https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFFont.html.

XSSFHyperlink

這是在org.apache.poi.xssf.usermodel包的類。它實現了Hyperlink介面。它是用來連結設定為電子試算表的單元格內容。

欄位

屬於此類的欄位如下。這裡,欄位意味著使用超連結的型別。

欄位 描述
LINK_DOCUMENT 用於連線任何其他檔案
LINK_EMAIL 用於連結的電子郵件
LINK_FILE 用於以任何格式連結任何其他檔案
LINK_URL 用來連線一個網頁URL

類方法

S.No. 方法及描述
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介面。它被用作公式求值和設定超文字連結支援類。

類方法

S.No. 方法和描述
1

createFormulaEvaluator()

建立一個XSSFFormulaEvaluator例如,結果計算公式的單元格的物件。

2

createHyperlink(int type)

Creates a new XSSFHyperlink.

對於其餘的方法,請參考以下連結:https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCreationHelper.html.

XSSFPrintSetup

這是在org.apache.poi.xsssf.usermodel包下的類。它實現了PrintSetup介面。它是用來設定列印頁面大小,面積,選項和設定。

類方法

S.No. 方法及說明
1

setLandscape(boolean ls)

設定一個布林值,允許或阻止橫向列印。

2

setLeftToRight(boolean ltor)

設定是否向左走向右或自上而下的順序,同時列印。

3

setPaperSize(short size)

設定紙張尺寸。

對於其餘的方法,請存取以下連結:https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFPrintSetup.html