Apache POI HSSF
适用于 Microsoft Excel 二进制文件的 Java 库
开源 Java API 允许读取、写入和转换 Excel XLS 电子表格。
Apache POI HSSF 是 Excel '97(-2007) 文件格式 (BIFF8) 的纯 Java 实现。免费的开源 API 提供了用于创建、读取、修改和编写 Excel XLS 电子表格的功能。只对读取电子表格数据感兴趣的开发人员可以使用事件模型 API 来满足他们的需求。为了修改电子表格数据,可以使用用户模型 API。重要的是要知道用户模型系统比低级事件用户模型具有更高的内存占用,但它的主要优点是使用起来更简单。
Apache POI HSSF 为其他 Excel 功能提供了强大的支持,例如使用工作表和公式、通过填充颜色和边框、字体、页眉和页脚、形状、数据验证、图像、超链接等来创建单元格样式。
Apache POI HSSF 入门
首先,您需要在系统上安装 Java 开发工具包 (JDK)。如果您已经拥有它,请继续访问 Apache POI 的 下载 页面以获取存档中的最新稳定版本。将 ZIP 文件的内容提取到可以将所需库链接到 Java 程序的任何目录中。就这些!
在基于 Maven 的 Java 项目中引用 Apache POI 更加简单。您只需在 pom.xml 中添加以下依赖项,并让您的 IDE 获取和引用 Apache POI Jar 文件。
Apache POI Maven 依赖
<!-- https://mvnrepository.com/artifact/org.apache.poi/poi -->
<dependency>
<groupId>org.apache.poi</groupId>
<artifactId>poi-scratchpad</artifactId>
<version>4.0.0</version>
</dependency>
通过 Java API 创建 Excel 工作簿和添加工作表
Apache POI HSSF 开源库使软件开发人员能够以 XLS 文件格式创建新的 Microsoft Excel 工作簿。开发人员可以从现有的 Workbook 实例轻松地将新的 Worksheets 添加到集合中。
创建一个新的 XLS 文件
// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("CreateXls.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set cell value
cell.setCellValue("File Format Developer Guide");
// save file
workbook.write(outputStream);
用于读取和写入现有 Excel 文件的 Java API
Apache POI HSSF 使软件开发人员能够访问和读取现有 Microsoft Excel 工作簿中的数据。读取文件非常简单,首先从 Excel 工作表创建一个工作簿实例并获取所需的工作表。然后增加行号并遍历一行中的所有单元格。重复这些步骤,直到读取所有数据。 Apache POI HSSF 还提供用于修改现有 Excel 文件的功能。
通过 Java 读取单元格内容
// open xls file
InputStream inputStream = new FileInputStream("document.xls");
Workbook workbook = WorkbookFactory.create(inputStream);
// get sheet
Sheet sheet = workbook.getSheetAt(0);
// get row
Row row = sheet.getRow(1);
// get cell
Cell cell = row.getCell(1);
// display data
System.out.println(cell);
绘制形状并将图像添加到 Excel 电子表格
Apache POI-HSSF 提供了在 Excel 电子表格中绘制形状的功能。它支持使用 Microsoft Office 绘图工具绘制形状。绘制各种形状,如椭圆、线条、矩形,并设置任何其他形状样式。在 Apache POI 中,图像是绘图的一部分,目前支持 PNG、JPG 和 DIB 类型的图像。
通过 Java 在 XLS 中绘制矩形
// create a new workbook
Workbook workbook = new HSSFWorkbook();
OutputStream outputStream = new FileOutputStream("DrawShape.xls");
// create a new sheet
Sheet sheet = workbook.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// create rectangle shape
HSSFPatriarch patriarch = (HSSFPatriarch) sheet.createDrawingPatriarch();
HSSFClientAnchor a = new HSSFClientAnchor(0, 0, 1023, 254, (short) 1, 0, (short) 1, 0);
HSSFSimpleShape shape = patriarch.createSimpleShape(a);
shape.setShapeType(HSSFSimpleShape.OBJECT_TYPE_RECTANGLE);
// save file
workbook.write(outputStream);
XLS 电子表格的字体处理和合并单元格
Apache POI-HSSF 提供了使 Java 程序员能够处理 Excel 电子表格中的字体的方法。我们可以创建字体、设置颜色、设置大小等。Font 是一个接口,提供了处理字体的方法。 Apache POI-HSSF 还允许开发人员将单元格合并为一个单元格。为此,它提供了将单元格索引作为参数并将单元格合并为单个大单元格的方法。
通过 Java 为 XLS 电子表格设置字体
// create a new XLS file
OutputStream outfile = new FileOutputStream("SetFont.xls");
Workbook wb = new HSSFWorkbook();
// create a new sheet
Sheet sheet = wb.createSheet("Apache POI XSSF");
// create a new row
Row row = sheet.createRow(1);
// create a new cell
Cell cell = row.createCell(1);
// set style
CellStyle style = wb.createCellStyle();
// set text
cell.setCellValue("File Format Developer Guide");
// set font settings
Font font = wb.createFont();
font.setFontHeightInPoints((short) 14);
font.setFontName("Arial");
font.setItalic(true);
font.setBold(true);
// apply font
style.setFont(font);
cell.setCellStyle(style);
// save
wb.write(outfile);