Apache POI核心类


本章介绍Apache POI API下的一些类和方法,这些类和方法对使用Java程序处理Excel文件至关重要。

工作簿

这是创建或维护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存储在内存中(如果已设置)。

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)

根据指定的参数设置给定图纸的打印区域。

Sheet

Sheet是 org.apache.poi.ss.usermodel 包下的一个接口,它是所有类的超级接口,可以创建具有特定名称的高级或低级电子表格。最常见的电子表格类型是工作表,它表示为单元格网格。

HSSFSheet

这是 org.apache.poi.hssf.usermodel 包下的一个类。它可以创建excel电子表格,并允许格式化工作表样式和工作表数据。

类构造函数

Sr.No. Constructor & Description
1

HSSFSheet(HSSFWorkbook workbook)

创建由HSSFWorkbook调用的新HSSFSheet以从头开始创建工作表。

2

HSSFSheet(HSSFWorkbook workbook, InternalSheet sheet)

创建表示给定工作表对象的HSSFSheet。

XSSFSheet

这是一个表示excel电子表格的高级表示的类。它位于 org.apache.poi.hssf.usermodel 包下。

类构造函数

Sr.No. Constructor & Description
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)

在此工作表的超链接集合中注册超链接

这是 org.apache.poi.ss.usermodel 包下的接口。它用于电子表格行的高级表示。它是表示POI库中行的所有类的超级接口。

XSSFRow

这是 org.apache.poi.xssf.usermodel 包下的一个类。它实现了Row接口,因此可以在电子表格中创建行。下面列出了此类下的方法和构造函数。

分类方法

Sr.No. Method & Description
1

createCell(int columnIndex)

在行中创建新单元格并返回它。

2

setHeight(short height)

以短单位设置高度。

Cell

这是 org.apache.poi.ss.usermodel 包下的接口。它是表示电子表格行中单元格的所有类的超级接口。

单元格可以采用各种属性,如空白,数字,日期,错误等。单元格在添加到行之前应该有自己的数字(基于0)。

XSSFCell

这是 org.apache.poi.xssf.usermodel 包下的一个类。它实现了Cell接口。它是电子表格行中单元格的高级表示。

字段

下面列出了XSSFCell类的一些字段及其描述。

序号 Cell 类型和描述
1

CELL_TYPE_BLANK

表示空白单元格

2

CELL_TYPE_BOOLEAN

表示布尔单元格(true或false)

3

CELL_TYPE_ERROR

表示单元格上的错误值

4

CELL_TYPE_FORMULA

表示单元格上的公式结果

5

CELL_TYPE_NUMERIC

表示单元格上的数字数据

6

CELL_TYPE_STRING

表示单元格上的字符串(文本)

类方法

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

为此单元格指定超链接。

XSSFCellStyle

这是 org.apache.poi.xssf.usermodel 包下的一个类。它将提供有关电子表格单元格中内容格式的可能信息。它还提供了修改该格式的选项。它实现了CellStyle接口。

字段总结

下表列出了从CellStyle接口继承的一些字段。

序号 字段 & 描述
1

ALIGN_CENTER

中心对齐单元格内容

2

ALIGN_CENTER_SELECTION

中心选择水平对齐

3

ALIGN_FILL

单元格适合内容大小

4

ALIGN_JUSTIFY

使细胞内容适合其宽度

5

ALIGN_LEFT

左对齐单元格内容

6

ALIGN_RIGHT

右对齐单元格内容

7

BORDER_DASH_DOT

带有破折号和点的单元格样式

8

BORDER_DOTTED

带有虚线边框的单元格样式

9

BORDER_DASHED

带有虚线边框的单元格样式

10

BORDER_THICK

细胞风格与厚边框

11

BORDER_THIN

细胞风格与薄边框

12

VERTICAL_BOTTOM

将细胞内容物垂直对齐

13

VERTICAL_CENTER

对齐单元格内容垂直中心

15

VERTICAL_JUSTIFY

垂直对齐并对齐单元格内容

16

VERTICAL_TOP

顶部对齐垂直对齐

类构造函数

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

设置单元格的垂直对齐类型。

HSSFColor

这是 org.apache.poi.hssf.util 包下的一个类。它提供不同的颜色作为嵌套类。通常这些嵌套类使用它们自己的索引来表示。它实现了Color接口。

嵌套类

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

序号 类名 (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

分类方法

此类中只有一个方法很重要,用于获取索引值。

Sr.No. 方法 & 描述
1

getIndex()

此方法用于获取嵌套类的索引值。

XSSFColor

这是 org.apache.poi.xssf.usermodel 包下的一个类。它用于表示电子表格中的颜色。它实现了Color接口。下面列出了它的一些方法和构造函数。

类构造函数

Sr.No. 构造方法 & 描述
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值设置为system ctColor。

XSSFFont

这是 org.apache.poi.xssf.usermodel 包下的一个类。它实现了Font接口,因此它可以处理工作簿中的不同字体。

类构造函数

序号 构造方法 & 描述
1

XSSFFont()

创建一个新的XSSFont实例。

分类方法

序号 方法 & 描述
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'属性设置布尔值。

XSSFHyperlink

这是 org.apache.poi.xssf.usermodel 包下的一个类。它实现了Hyperlink接口。它用于设置指向电子表格单元格内容的超链接。

字段

该类的字段如下。这里,字段表示使用的超链接类型。

序号 字段 & 描述
1

LINK_DOCUMENT

用于链接任何其他文档

2

LINK_EMAIL

用于链接电子邮件

3

LINK_FILE

用于链接任何格式的任何其他文件

4

LINK_URL

用于链接Web URL

类方法

Sr.No. Method & Description
1

setAddress(java.lang.String address)

超链接地址。

XSSFCreationHelper

这是 org.apache.poi.xssf.usermodel 包下的一个类。它实现了CreationHelper接口。它用作公式评估和设置超链接的支持类。

类方法

序号 方法 & 描述
1

createFormulaEvaluator()

创建一个XSSFFormulaEvaluator实例,该实例是评估公式单元格的对象。

2

createHyperlink(int type)

创建一个新的XSSFHyperlink。

XSSFPrintSetup

这是 org.apache.poi.xsssf.usermodel 包下的一个类。它实现了 PrintSetup 接口。它用于设置打印页面大小,区域,选项和设置。

分类方法

序号 方法 & 描述
1

setLandscape(boolean ls)

设置布尔值以允许或阻止横向打印。

2

setLeftToRight(boolean ltor)

设置打印时是否从左到右或从上到下排序。

3

setPaperSize(short size)

设置纸张尺寸。