MS Excel 文件主要用于以工作表的形式保存表格数据。通常,庞大的数据集也保存在 Excel 文件中。因此,您可能会遇到需要从 Excel 文件中的工作表中读取和获取数据的情况。为此,本文展示了如何在 Java 中读取 Excel 文件。我们将演示如何以编程方式读取整个 Excel 文件或仅读取单个工作表。
用于读取 Excel 文件的 Java 库
要从工作表中读取数据,我们将使用 Aspose.Cells for Java。它是一个电子表格操作 API,用于从头开始创建 Excel 文件。此外,它允许您非常轻松地阅读和操作现有的 Excel 文件。该 API 可以从 下载部分 下载或通过在 pom.xml 中添加以下 Maven 配置来安装。
<repository>
<id>AsposeJavaAPI</id>
<name>Aspose Java API</name>
<url>https://repository.aspose.com/repo/</url>
</repository>
<dependency>
<groupId>com.aspose</groupId>
<artifactId>aspose-cells</artifactId>
<version>21.11</version>
</dependency>
用 Java 读取 Excel 文件
在 Excel 文件中,数据存储在单元格中,其中每个单元格由其名称(A1、B3 等)或行和列索引标识。这些单元格共同形成一个工作表,一个 Excel 文件由单个或多个工作表组成。所有工作表都包含在工作簿中。这是对 Excel 文件结构的简要概述。现在让我们继续从 Excel 文件中读取数据。
以下是使用 Java 读取 Excel 文件并打印其数据的步骤。
- 使用 Workbook 类加载 Excel 文件。
- 创建 WorksheetCollection 类的对象并使用 Workbook.getWorksheets() 方法获取工作表的引用。
- 启动一个循环以遍历集合中的所有工作表,并在每次迭代中执行以下步骤:
- 在 Worksheet 对象中获取工作表的引用。
- 获取工作表中数据行和列的计数。
- 为行启动一个循环。
- 为列启动嵌套循环。
- 使用 Worksheet.getCells().get(rowIndex, columnIndex).getValue() 方法从每个单元格中读取数据。
以下代码示例展示了如何在 Java 中读取 Excel 文件。
// 加载 Excel 文件
Workbook wb = new Workbook("workbook.xlsx");
// 获取所有工作表
WorksheetCollection collection = wb.getWorksheets();
// 循环遍历所有工作表
for (int worksheetIndex = 0; worksheetIndex < collection.getCount(); worksheetIndex++) {
// 使用其索引获取工作表
Worksheet worksheet = collection.get(worksheetIndex);
// 打印工作表名称
System.out.print("Worksheet: " + worksheet.getName());
// 获取行数和列数
int rows = worksheet.getCells().getMaxDataRow();
int cols = worksheet.getCells().getMaxDataColumn();
// 循环遍历行
for (int i = 0; i < rows; i++) {
// 循环遍历选定行中的每一列
for (int j = 0; j < cols; j++) {
// 打印单元格值
System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");
}
// 打印换行符
System.out.println(" ");
}
}
以下是我们在运行上面的代码示例后在控制台中得到的输出。
在 Java 中读取 Excel 中的特定工作表
您还可以按照以下步骤仅读取 Excel 文件中的特定工作表。
- 使用 Workbook 类加载 Excel 文件。
- 使用 Workbook.getWorksheets().get(index) 方法在 Worksheet 对象中获取所需工作表的引用。
- 获取工作表中数据行和列的计数。
- 为行启动一个循环。
- 为列启动嵌套循环。
- 使用 Worksheet.getCells().get(rowIndex, columnIndex).getValue() 方法从每个单元格中读取数据。
以下代码示例显示了如何从 Java 中的特定工作表中读取数据。
// 加载 Excel 文件
Workbook wb = new Workbook("workbook.xlsx");
// 获取工作表的参考
Worksheet worksheet = wb.getWorksheets().get(0);
// 获取行数和列数
int rows = worksheet.getCells().getMaxDataRow();
int cols = worksheet.getCells().getMaxDataColumn();
// 循环遍历行
for (int i = 0; i < rows; i++) {
// 循环遍历选定行中的每一列
for (int j = 0; j < cols; j++) {
// 打印单元格值
System.out.print(worksheet.getCells().get(i, j).getValue() + " | ");
}
// 打印换行符
System.out.println(" ");
}
获取免费 API 许可证
您可以通过获得 免费临时许可证 来使用 Aspose.Cells for Java,而不受评估限制。
结论
在本文中,您学习了如何在 Java 中动态读取 Excel 文件。在代码示例的帮助下,您已经了解了如何从特定工作表或 Excel 工作簿中的所有工作表中读取数据。此外,您可以使用 文档 探索 Aspose.Cells for Java 的其他功能。如果您有任何疑问,请随时通过我们的 论坛 告诉我们。