介绍
Aspose.Cells FOSS for TypeScript 提供了一套全面的电子表格管理功能,超越了基本的单元格读取/写入。开发人员可以应用详细的样式、设置数据验证规则、配置自动筛选、添加条件格式、构建图表、插入形状,并保护工作簿 – 所有这些都可以通过 TypeScript 代码实现,且无需 Microsoft Office 依赖。
本文逐步介绍库中可用的关键电子表格管理功能,并提供每个功能区域的可运行代码示例。
主要功能
数据验证
使用 DataValidation 类向单元格范围添加验证规则。支持的验证类型包括列表、数字范围和自定义公式。使用 worksheet.addDataValidation() 对任意范围应用验证。
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
const validation = new DataValidation();
validation.type = "list";
validation.formula1 = '"Option1,Option2,Option3"';
worksheet.addDataValidation(validation, "B1:B10");
await workbook.save("validated.xlsx");
自动筛选
使用 worksheet.setAutoFilter() 在数据范围上启用自动筛选标题。这将在输出的 XLSX 文件中为列标题添加下拉筛选控件。使用 worksheet.removeAutoFilter() 移除筛选。
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Name");
worksheet.putValue("B1", "Age");
worksheet.putValue("C1", "City");
worksheet.putValue("A2", "Alice");
worksheet.putValue("B2", "25");
worksheet.putValue("C2", "New York");
worksheet.putValue("A3", "Bob");
worksheet.putValue("B3", "30");
worksheet.putValue("C3", "London");
worksheet.setAutoFilter("A1:C4");
await workbook.save("filtered.xlsx");
条件格式
使用 ConditionalFormatCollection 对单元格范围应用可视化规则。该库支持 ColorScaleRule、DataBarRule 和 IconSetRule,用于根据单元格值进行高亮显示。
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
for (let i = 1; i <= 10; i++) {
worksheet.putValue(`A${i}`, i * 10);
}
await workbook.save("conditional.xlsx");
超链接和注释
将超链接附加到带有 cell.setHyperlink() 的单元格,支持 URL、电子邮件地址和内部工作表引用。使用 Comment 对象添加带有 worksheet.addComment() 的批注。
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Click here");
worksheet.getCell2("A1").setHyperlink("https://www.example.com");
worksheet.putValue("A3", "Send email");
worksheet.getCell2("A3").setHyperlink("mailto:test@example.com");
await workbook.save("hyperlinks.xlsx");
工作簿和单元格保护
使用 workbook.protect() 为整个工作簿设置密码保护。使用 style.setLocked(true) 锁定单个单元格,并使用 style.setHidden() 控制公式可见性。
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Protected Cell");
const style = new Style();
style.setLocked(true);
style.setHidden(false);
worksheet.getCell2("A1").setStyle(style);
workbook.protect(true, "password");
await workbook.save("protected.xlsx");
列和行尺寸
使用 worksheet.setColumnWidth() 设置列宽,使用 worksheet.setRowHeight() 设置行高。使用 worksheet.setRowHidden() 隐藏行。这些设置在保存的 XLSX 文件中会保留。
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Wide Column");
worksheet.setColumnWidth(0, 30);
worksheet.setRowHeight(0, 25);
await workbook.save("sized.xlsx");
快速入门
使用 npm 安装:
npm install @aspose/cells@1.0.0
构建带有验证和自动筛选的样式工作簿:
import { Workbook, Style, DataValidation } from "@aspose/cells";
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Status");
worksheet.putValue("B1", "Value");
const headerStyle = new Style();
headerStyle.setBold(true);
worksheet.getCell2("A1").setStyle(headerStyle);
worksheet.getCell2("B1").setStyle(headerStyle);
const validation = new DataValidation();
validation.type = "list";
validation.formula1 = '"Active,Inactive,Pending"';
worksheet.addDataValidation(validation, "A2:A20");
worksheet.setAutoFilter("A1:B20");
await workbook.save("managed.xlsx");
开源与许可
Aspose.Cells FOSS for TypeScript 在 MIT 许可证下发布。源代码可在 GitHub 上获取。根据 MIT 许可证条款,允许商业使用。