核心类( Core Classes)
本章介绍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文件。 下面列出了此类下的一些方法和构造函数。
类构造函数 (Class Constructors)
Sr.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存储在内存中(如果已设置)。
Note - HSSFWorkbook类包含许多方法; 但它们仅与xls格式兼容。 在本教程中,重点是最新版本的Excel文件格式。 因此,此处未列出HSSFWorkbook的类方法。 如果您需要这些类方法,请参阅https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html. POI-HSSFWorkbook类API https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html.
XSSFWorkbook
它是一个用于表示高级和低级Excel文件格式的类。 它属于org.apache.xssf.usemodel包并实现Workbook接口。 下面列出了此类下的方法和构造函数。
类构造函数 (Class Constructors)
Sr.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对象。 |
类方法 (Class Methods)
Sr.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文档: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFWorkbook.html. : 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电子表格,并允许格式化工作表样式和工作表数据。
类构造函数 (Class Constructors)
Sr.No. | 构造函数和描述 |
---|---|
1 | HSSFSheet(HSSFWorkbook workbook) 创建由HSSFWorkbook调用的新HSSFSheet以从头开始创建工作表。 |
2 | HSSFSheet(HSSFWorkbook workbook, InternalSheet sheet) 创建表示给定工作表对象的HSSFSheet。 |
XSSFSheet
这是一个表示excel电子表格的高级表示的类。 它位于org.apache.poi.hssf.usermodel包下。
类构造函数 (Class Constructors)
Sr.No. | 构造函数和描述 |
---|---|
1 | XSSFSheet() 创建新的XSSFSheet - 由XSSFWorkbook调用以从头开始创建工作表。 |
2 | XSSFSheet(PackagePart part, PackageRelationship rel) 创建表示给定包部件和关系的XSSFSheet。 |
类方法 (Class Methods)
Sr.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. : 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接口,因此可以在电子表格中创建行。 下面列出了此类下的方法和构造函数。
类方法 (Class Methods)
Sr.No. | 方法和描述 |
---|---|
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接口。 它是电子表格行中单元格的高级表示。
现场总结
下面列出了XSSFCell类的一些字段及其描述。
Sr.No. | 细胞类型和描述 |
---|---|
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 表示单元格上的字符串(文本) |
类方法 (Class Methods)
Sr.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 : https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCell.html
XSSFCellStyle
这是org.apache.poi.xssf.usermodel包下的一个类。 它将提供有关电子表格单元格中内容格式的可能信息。 它还提供了修改该格式的选项。 它实现了CellStyle接口。
现场总结
下表列出了从CellStyle接口继承的一些字段。
Sr.No. | 领域和描述 |
---|---|
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 顶部对齐垂直对齐 |
类构造函数 (Class Constructors)
Sr.No. | 构造函数和描述 |
---|---|
1 | XSSFCellStyle(int cellXfId, int cellStyleXfId, StylesTable stylesSource, ThemesTable theme) 从提供的零件创建单元格样式 |
2 | XSSFCellStyle(StylesTable stylesSource) 创建一个空单元格样式 |
类方法 (Class Methods)
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 : https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCellStyle.html
HSSFColor
这是org.apache.poi.hssf.util包下的一个类。 它提供不同的颜色作为嵌套类。 通常这些嵌套类使用它们自己的索引来表示。 它实现了Color接口。
嵌套类
此类的所有嵌套类都是静态的,每个类都有其索引。 这些嵌套颜色类用于单元格格式,例如单元格内容,边框,前景和背景。 下面列出了一些嵌套类。
Sr.No. | class名称(颜色) |
---|---|
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 |
类方法 (Class Methods)
此类中只有一个方法很重要,用于获取索引值。
Sr.No. | 方法和描述 |
---|---|
1 | getIndex() 此方法用于获取嵌套类的索引值。 |
有关其余方法和嵌套类,请参阅以下链接: https://poi.apache.org/apidocs/org/apache/poi/hssf/util/HSSFColor.html : https://poi.apache.org/apidocs/org/apache/poi/hssf/util/HSSFColor.html
XSSFColor
这是org.apache.poi.xssf.usermodel包下的一个类。 它用于表示电子表格中的颜色。 它实现了Color接口。 下面列出了它的一些方法和构造函数。
类构造函数 (Class Constructors)
Sr.No. | 构造函数和描述 |
---|---|
1 | XSSFColor() 创建XSSFColor的新实例。 |
2 | XSSFColor(byte[] rgb) 使用RGB创建XSSFColor的新实例。 |
3 | XSSFColor(java.awt.Color clr) 使用awt包中的Color类创建XSSFColor的新实例。 |
类方法 (Class Methods)
Sr.No. | 方法和描述 |
---|---|
1 | setAuto(boolean auto) 设置一个布尔值,表示ctColor是自动的,系统ctColor是依赖的。 |
2 | setIndexed(int indexed) 将索引的ctColor值设置为system ctColor。 |
对于其余方法,请访问以下链接: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFColor.html : https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFColor.html
XSSFFont
这是org.apache.poi.xssf.usermodel包下的一个类。 它实现了Font接口,因此它可以处理工作簿中的不同字体。
类构造函数 (Class Constructor)
Sr.No. | 构造函数和描述 |
---|---|
1 | XSSFFont() 创建一个新的XSSFont实例。 |
类方法 (Class Methods)
Sr.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 : https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFFont.html
XSSFHyperlink
这是org.apache.poi.xssf.usermodel包下的一个类。 它实现了Hyperlink接口。 它用于设置指向电子表格单元格内容的超链接。
Fields
该类的字段如下。 这里,字段表示使用的超链接类型。
Sr.No. | 领域和描述 |
---|---|
1 | LINK_DOCUMENT 用于链接任何其他文档 |
2 | LINK_EMAIL 用于链接电子邮件 |
3 | LINK_FILE 用于链接任何格式的任何其他文件 |
4 | LINK_URL 用于链接Web URL |
类方法 (Class Methods)
Sr.No. | 方法和描述 |
---|---|
1 | setAddress(java.lang.String address) 超链接地址。 |
对于其余方法,请访问以下链接: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFHyperlink.html : https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFHyperlink.html
XSSFCreationHelper
这是org.apache.poi.xssf.usermodel包下的一个类。 它实现了CreationHelper接口。 它用作公式评估和设置超链接的支持类。
类方法
Sr.No. | 方法和描述 |
---|---|
1 | createFormulaEvaluator() 创建一个XSSFFormulaEvaluator实例,该实例是评估公式单元格的对象。 |
2 | createHyperlink(int type) 创建一个新的XSSFHyperlink。 |
有关其余方法,请参阅以下链接: https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCreationHelper.html : https://poi.apache.org/apidocs/org/apache/poi/xssf/usermodel/XSSFCreationHelper.html
XSSFPrintSetup
这是org.apache.poi.xsssf.usermodel包下的一个类。 它实现了PrintSetup接口。 它用于设置打印页面大小,区域,选项和设置。
类方法 (Class Methods)
Sr.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 : https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFPrintSetup.html