使用电子表格管理
管理工作表
WorksheetCollection 类提供在工作簿中管理工作表的方法。使用 addWorksheet() 添加新工作表,使用 removeWorksheet() 删除,使用 moveWorksheet() 重新排序。
import { Workbook } from "excel-cells";
const workbook = new Workbook();
const sheets = workbook.worksheets;
const sheet2 = sheets.addWorksheet("Sales");
const sheet3 = sheets.addWorksheet("Summary");
sheet2.putValue("A1", "Sales Data");
sheet3.putValue("A1", "Summary Report");
await workbook.save("multi-sheet.xlsx");单元格值与公式
使用 worksheet.putValue() 写入整数、十进制数和字符串。使用 getCell2() 按引用访问单元格,或使用 getCell() 按行/列索引访问。使用 cell.setFormula() 设置公式。
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", 42);
worksheet.putValue("A2", 3.14159);
worksheet.putValue("A3", "Hello World");
const cellA4 = worksheet.getCell2("A4");
cellA4.setFormula("=SUM(A1:A2)");
await workbook.save("values.xlsx");字体和填充样式
使用 Style 类应用字体设置。设置字体名称、大小、粗体、斜体和颜色。使用 cell.setStyle() 将样式应用于单个单元格。
import { Workbook, Style } from "excel-cells";
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
const style = new Style();
style.setFontName("Arial");
style.setFontSize(14);
style.setBold(true);
style.setItalic(true);
style.setFontColor("FF0000");
const cell = worksheet.getCell2("A1");
cell.putValue("Styled Text");
cell.setStyle(style);
await workbook.save("styled.xlsx");数据验证
使用 DataValidation 为单元格范围添加验证规则。指定验证类型(列表、数字范围或自定义),并使用 worksheet.addDataValidation() 应用。
import { Workbook, DataValidation } from "excel-cells";
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() 启用可筛选的列标题。使用 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.setAutoFilter("A1:C4");
await workbook.save("filtered.xlsx");Hyperlinks
使用 cell.setHyperlink() 将超链接附加到单元格。支持 URL、电子邮件地址和内部工作表引用。
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) 锁定单个单元格。
import { Workbook, Style } from "excel-cells";
const workbook = new Workbook();
const worksheet = workbook.worksheets[0]!;
worksheet.putValue("A1", "Protected Cell");
const style = new Style();
style.setLocked(true);
worksheet.getCell2("A1").setStyle(style);
workbook.protect(true, "password");
await workbook.save("protected.xlsx");列和行的大小调整
设置列宽和行高,以控制输出 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");