介绍
Aspose.Cells FOSS for Java 为 Java 17 应用程序提供了全面的电子表格功能 针对 Java 17 应用程序。以 MIT 许可证发布并作为标准 Maven 构件分发, 标准 Maven 构件,库覆盖了从基本工作簿创建 到类型化单元格值、丰富的格式设置、数据验证和 AutoFilter —— 所有 均无需 Microsoft Office 依赖。
本文通过聚焦的代码示例,遍历主要功能区域,这些示例取自
已验证的 API 表面。下面显示的所有类和方法名称均存在于库中,并可在 1.0.0 版本中使用。
主要功能
工作簿和工作表管理
Workbook 类实现了 AutoCloseable,因此它能够干净地与
Java try-with-resources 模式集成。您可以创建一个空白工作簿,加载现有的.xlsx 文件,重命名工作表,添加或删除工作表,设置活动工作表,并
控制选项卡可见性。
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
sheet.setName("Q1 Report");
workbook.getWorksheets().addSheet("Summary");
workbook.save("report.xlsx");
}
已输入的单元格值和公式
Cell 类通过 putValue() 接受 String、int、double、boolean 和 LocalDateTime 的类型化值。getType() 方法返回一个 CellValueType 枚举值——STRING、NUMBER、BOOLEAN、DATE_TIME 或 FORMULA——使得在不解析字符串的情况下轻松根据值类型进行分支。公式字符串使用 setFormula() 存储,并将在打开时由 Excel 重新计算。
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.CellValueType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
Cell a1 = sheet.getCells().get("A1");
a1.putValue("Revenue");
Cell b1 = sheet.getCells().get("B1");
b1.putValue(42500.00);
Cell c1 = sheet.getCells().get("C1");
c1.setFormula("=B1*1.2");
// Check type
assert b1.getType() == CellValueType.NUMBER;
assert c1.getType() == CellValueType.FORMULA;
workbook.save("values.xlsx");
}
单元格格式和样式
格式通过从 cell.getStyle() 检索的 Style 对象应用,并使用 cell.setStyle() 写回。Font 子对象公开 setBold() 和 setColor()。HorizontalAlignment 控制文本对齐 — LEFT、CENTER 或 RIGHT。自定义数字格式通过 style.setCustom() 使用 Excel 格式字符串。行高和列宽通过 getRows().get(n).setHeight() 和 getColumns().get(n).setWidth() 调整。
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
Cell cell = sheet.getCells().get("B1");
cell.putValue(9999.50);
Style style = cell.getStyle();
style.getFont().setBold(true);
style.setCustom("#,##0.00");
cell.setStyle(style);
sheet.getCells().getRows().get(0).setHeight(24.0);
sheet.getCells().getColumns().get(1).setWidth(16.0);
workbook.save("styled.xlsx");
}
数据验证
通过 sheet.getValidations().add() 添加数据验证规则。每个 Validation 对象接受一个 ValidationType(例如 WHOLE_NUMBER、DECIMAL、LIST)和一个 OperatorType(例如 BETWEEN、GREATER_THAN)。公式边界通过 setFormula1() 和 setFormula2() 以字符串形式存储。
import com.aspose.cells_foss.CellArea;
import com.aspose.cells_foss.OperatorType;
import com.aspose.cells_foss.Validation;
import com.aspose.cells_foss.ValidationType;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
int vi = sheet.getValidations().add(new CellArea(1, 0, 10, 0));
Validation validation = sheet.getValidations().get(vi);
validation.setType(ValidationType.WHOLE_NUMBER);
validation.setOperator(OperatorType.BETWEEN);
validation.setFormula1("1");
validation.setFormula2("100");
workbook.save("validated.xlsx");
}
自动筛选
AutoFilters 让最终用户能够在 Excel 中交互式过滤数据,而无需任何额外
配置。调用 ws.getAutoFilter().setRange() 并使用 A1 表示法的范围来
启用过滤标题行。其他过滤列和自定义条件可以
通过 FilterColumn 和 AutoFilterCustomFilter 定义。
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
sheet.getCells().get("A1").putValue("Product");
sheet.getCells().get("B1").putValue("Qty");
sheet.getAutoFilter().setRange("A1:B1");
workbook.save("filtered.xlsx");
}
页面设置和工作表保护
PageSetup 类控制纸张尺寸、页面方向和适合页面的设置,以实现可打印输出。工作表保护通过 protect() 与 WorksheetProtectionModel 应用,允许特定单元格保持可编辑,同时锁定其余部分。超链接通过 HyperlinkCollection 管理。
快速入门
将依赖项添加到您的 pom.xml:
<dependency>
<groupId>com.aspose</groupId>
<artifactId>cells-foss</artifactId>
<version>1.0.0</version>
</dependency>
在20行以内创建一个包含所有主要功能的工作簿:
import com.aspose.cells_foss.Cell;
import com.aspose.cells_foss.Style;
import com.aspose.cells_foss.Workbook;
import com.aspose.cells_foss.Worksheet;
public class QuickStart {
public static void main(String[] args) {
try (Workbook workbook = new Workbook()) {
Worksheet sheet = workbook.getWorksheets().get(0);
sheet.setName("Sales");
sheet.getCells().get("A1").putValue("Revenue");
Cell b1 = sheet.getCells().get("B1");
b1.putValue(42500.00);
Style style = b1.getStyle();
style.getFont().setBold(true);
style.setCustom("#,##0.00");
b1.setStyle(style);
sheet.getAutoFilter().setRange("A1:B1");
workbook.save("sales.xlsx");
}
}
}
支持的格式
| 格式 | 扩展名 | 读取 | 写入 |
|---|---|---|---|
| Excel Open XML | .xlsx | ✓ | ✓ |
保存目前仅限于 .xlsx。该库存储并往返传递公式,但并不充当完整的电子表格计算引擎。
开源与许可
Aspose.Cells FOSS for Java 在 MIT 许可证下发布。
您可以自由使用,
修改并在个人、开源和商业项目中分发它,且没有任何
限制。源代码可在以下地址获取
github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-Java。