Apache POI - Java Excel APIs
文檔來源:https://www.yiibai.com/apache_poi/
POI
什麽是Apache POI?
Apache POI是一種流行的API,它允許程序員使用Java程序創建,修改和顯示MS Office文件。這由Apache軟件基金會開發使用Java分布式設計或修改Microsoft Office文件的開源庫。它包含類和方法對用戶輸入數據或文件到MS Office文檔進行解碼。
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
Apache POI - Java Excel APIs