- Apache POI 教程
- Apache POI - 首页
- Apache POI - 概述
- Apache POI - Java Excel API
- Apache POI - 环境
- Apache POI - 核心类
- Apache POI - 工作簿
- Apache POI - 电子表格
- Apache POI - 单元格
- Apache POI - 字体
- Apache POI - 公式
- Apache POI - 超链接
- Apache POI - 打印区域
- Apache POI - 数据库
- Apache POI 资源
- Apache POI - 常见问题解答
- Apache POI - 快速指南
- Apache POI - 有用资源
- Apache POI - 讨论
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的类方法。如果您需要这些类方法,请参考POI-HSSFWorkbook类API:https://poi.apache.org/apidocs/org/apache/poi/hssf/usermodel/HSSFWorkbook.html。
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接口。
嵌套类
此类所有嵌套类都是静态的,每个类都有其索引。这些嵌套颜色类用于单元格格式化,例如单元格内容、边框、前景和背景。以下是一些嵌套类。
序号 | 类名(颜色) |
---|---|
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包下的一个类。它用于表示电子表格中的颜色,并实现Color接口。下面列出了一些它的方法和构造函数。
类构造函数
序号 | 构造函数和说明 |
---|---|
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() 创建一个新的XSSFFont实例。 |
类方法
序号 | 方法和说明 |
---|---|
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包下的一个类。它实现了Hyperlink接口,用于将超链接设置到电子表格的单元格内容。
类方法
序号 | 方法和说明 |
---|---|
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