如何在 Java 中加载电子表格
如何在 Java 中加载电子表格
Aspose.Cells FOSS for Java 允许您从文件路径或任何 java.io.InputStream 打开现有的 Excel .xlsx 工作簿。本指南展示了两种加载方式,并解释了在工作簿加载后如何访问工作表和单元格。
先决条件
| 要求 | 详细信息 |
|---|---|
| Java | 17 或更高版本 (JDK) |
当前源模型中,AutoFilter API 的表面已更改;在依赖旧的成员细节之前,请查看其参考页面。 | 构建工具 | Maven 3.9+ or Gradle 8+ | | 依赖项 | org.aspose:aspose-cells-foss:26.7.0 | | 输入文件 | A valid .xlsx workbook |
添加到 pom.xml:
<dependency>
<groupId>org.aspose</groupId>
<artifactId>aspose-cells-foss</artifactId>
<version>26.7.0</version>
</dependency>步骤 1 — 从文件路径加载
将绝对或相对文件路径传递给 Workbook(fileName) 构造函数:
import com.aspose.cells.foss.Workbook;
Workbook workbook = new Workbook("data/report.xlsx");
System.out.println("Loaded. Sheets: " + workbook.getWorksheets().getCount());构造函数读取文件并将 XLSX 内容反序列化到内存中。如果文件不存在或不是有效的 XLSX,则会抛出 WorkbookLoadException。
步骤 2 — 从流加载
当文件内容来自网络连接、数据库 BLOB 或内存缓冲区时,请使用 Workbook(stream):
import com.aspose.cells.foss.Workbook;
import java.io.FileInputStream;
import java.io.InputStream;
try (InputStream is = new FileInputStream("data/report.xlsx")) {
Workbook workbook = new Workbook(is);
System.out.println("Loaded from stream. Sheets: " + workbook.getWorksheets().getCount());
}始终在 try-with-resources 块中包装 InputStream,以便即使构造函数抛出异常,流也能被关闭。
步骤 3 — 使用选项加载
当需要对加载行为进行细粒度控制时,使用 Workbook(fileName, options) 或 Workbook(stream, options) 传递 LoadOptions 实例:
import com.aspose.cells.foss.Workbook;
import com.aspose.cells.foss.LoadOptions;
LoadOptions opts = new LoadOptions();
// configure opts here if needed
Workbook workbook = new Workbook("data/report.xlsx", opts);步骤 4 — 访问工作表
加载后,使用 Workbook.getWorksheets() 来遍历工作表或通过索引或名称检索特定工作表:
import com.aspose.cells.foss.WorksheetCollection;
import com.aspose.cells.foss.Worksheet;
WorksheetCollection sheets = workbook.getWorksheets();
System.out.println("Sheet count: " + sheets.getCount());
// By index
Worksheet first = sheets.get(0);
System.out.println("First sheet: " + first.getName());
// By name
Worksheet named = sheets.get("Summary");步骤 5 — 读取单元格值
拥有 Worksheet 后,使用 getCells() 来访问各个单元格:
import com.aspose.cells.foss.Cells;
import com.aspose.cells.foss.Cell;
Cells cells = first.getCells();
// Read by cell name
Cell a1 = cells.get("A1");
System.out.println("A1 value: " + a1.getStringValue());
// Read by row/column index (0-based)
Cell b2 = cells.get(1, 1);
System.out.println("B2 value: " + b2.getValue());步骤 6 — 释放资源
Workbook 实现了 AutoCloseable。对于大文件,请使用 try-with-resources:
try (Workbook workbook = new Workbook("data/large.xlsx")) {
// read or modify the workbook
workbook.save("data/output.xlsx");
}
// workbook.close() is called automatically here后续步骤
- 使用电子表格管理 — 完整的创建/修改/保存教程
- 如何创建 Aspose.Cells FOSS 工作簿 — 从头创建工作簿
- 如何使用验证 — 添加数据验证规则