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 的类方法不在此列出。 如果您需要这些类方法,请参考 https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html 处的 POI-HSSFWorkbook 类 API。


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 接口。

嵌套类

这个类的所有嵌套类都是静态的,每个类都有它的索引。 这些嵌套颜色类用于单元格格式,例如单元格内容、边框、前景和背景。 下面列出了一些嵌套类。

序号 Class names (colors)
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 包下的一个类。 它用于表示电子表格中的颜色。 它实现了颜色接口。 下面列出了它的一些方法和构造函数。

类构造函数

序号 构造函数 & 描述
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()

Creates a new XSSFont instance.

类方法

序号 方法 & 描述
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 包下的一个类。 它实现了超链接接口。 它用于设置电子表格单元格内容的超链接。

类方法

序号 方法 & 描述
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