Giới thiệu
Aspose.Cells FOSS cho TypeScript mở rộng chức năng của nó qua một tập hợp gọn gàng các lớp core: Workbook, WorksheetCollection, Worksheet, Cell, và Style, cùng với các kiểu hỗ trợ cho định dạng và lọc. Bài viết này là một chuyến tham quan có hệ thống về bề mặt core API này – không phải một chủ đề hẹp duy nhất, mà là những nền tảng mà mọi ứng dụng xây dựng trên thư viện đều sử dụng: mở và lưu workbooks, duyệt worksheets, đọc và ghi giá trị và công thức ô, áp dụng kiểu dáng, lọc dữ liệu, và xuất ra các định dạng khác.
Mỗi phần dưới đây bao phủ một lĩnh vực của API với các phương thức và thuộc tính cụ thể liên quan, được hỗ trợ bởi các ví dụ TypeScript hoạt động. Mục tiêu là cung cấp cho bạn một mô hình tinh thần làm việc về cách các thành phần kết hợp với nhau, từ new Workbook() đến các thuộc tính Cell riêng lẻ.
Các tính năng chính
Cơ bản về Workbook và Worksheet
Một Workbook có thể được tạo trống bằng new Workbook() hoặc tải không đồng bộ từ một tệp hiện có bằng Workbook.load(filePath, password). Mỗi workbook cung cấp worksheets, một WorksheetCollection hỗ trợ chỉ mục, lặp và các phương thức kiểu mảng (map, filter, forEach, find, indexOf) bên cạnh addWorksheet(name), removeWorksheet(index), và moveWorksheet(fromIndex, toIndex). Gọi workbook.save(filePath, options) để lưu các thay đổi.
const workbook = new Workbook();
const ws1 = workbook.worksheets.addWorksheet();
const ws2 = workbook.worksheets.addWorksheet("CustomSheet1");
console.log("Total worksheets:", workbook.worksheets.length);
workbook.worksheets.removeWorksheet(1);
console.log("After delete:", workbook.worksheets.length);
console.log(
"Names:",
workbook.worksheets.worksheets.map((w) => w.name),
);
await workbook.save("workbook.xlsx");
Truy cập ô và Giá trị
Một Worksheet đọc và ghi các ô thông qua putValue(key, value), getCell2(key) (trả về một Cell, tạo nó nếu không tồn tại), getCell(row, col) (trả về Cell | undefined), và getCellByRef(ref). Mỗi Cell cung cấp value, formula, row, col, và ref như các thuộc tính, và setFormula() / setStyle() / setHyperlink() như các phương thức.
const workbook = new Workbook();
const sheet = workbook.worksheets[0]!;
sheet.putValue("A1", 42);
sheet.putValue("A2", "Hello World");
const formulaCell = sheet.getCell2("A3");
formulaCell.setFormula("=A1+10");
console.log("A1 value:", sheet.getCell(0, 0)?.value);
console.log("A3 formula:", sheet.getCell(2, 0)?.formula);
const byRef = sheet.getCellByRef("A1");
console.log("Ref:", byRef?.ref, "Row:", byRef?.row, "Col:", byRef?.col);
await workbook.save("cells.xlsx");
Kiểu, Phông chữ, Đường viền và Căn chỉnh
Style nhóm các cài đặt phông chữ, nền, đường viền, căn chỉnh và định dạng số cho một ô. Đọc hoặc thay thế toàn bộ các đối tượng con bằng getFont()/setFont(), getBorder()/setBorder(), và getAlignment()/setAlignment(), hoặc sử dụng các setter tiện lợi trực tiếp trên Style, chẳng hạn setFontName(), setFontSize(), setBold(), setHorizontalAlignment(), và setNumberFormat(). Áp dụng Style đã hoàn thiện cho một ô bằng Cell.setStyle().
const workbook = new Workbook();
const sheet = workbook.worksheets[0]!;
const style = new Style();
style.setFontName("Arial");
style.setFontSize(14);
style.setBold(true);
style.setNumberFormat("0.00");
style.getBorder().bottom = { style: "thin", color: "000000" };
style.setHorizontalAlignment("center");
style.setVerticalAlignment("center");
style.setWrapText(true);
const cell = sheet.getCell2("B2");
cell.putValue(1234.5);
cell.setStyle(style);
console.log("Bold:", style.isBold(), "Format:", style.getNumberFormat());
await workbook.save("styled.xlsx");
Lọc tự động với lớp AutoFilter
Worksheet.setAutoFilter(range) là một phím tắt cho trường hợp phổ biến, nhưng lớp AutoFilter nền tảng cũng có thể được sử dụng trực tiếp: tạo nó với một phạm vi, sau đó gọi addFilterColumn(col, filters, blank) cho mỗi cột để xác định các giá trị cần hiển thị, hoặc removeFilterColumn(col) / clear() để hủy lọc.
const workbook = new Workbook();
const sheet = workbook.worksheets[0]!;
sheet.putValue("A1", "Name");
sheet.putValue("B1", "City");
sheet.putValue("A2", "Alice");
sheet.putValue("B2", "New York");
sheet.putValue("A3", "Bob");
sheet.putValue("B3", "London");
const filter = new AutoFilter("A1:B3");
filter.addFilterColumn(1, ["New York"], false);
console.log("Filter range:", filter.range);
console.log("Filter columns:", filter.columns.length);
await workbook.save("filtered.xlsx");
Xuất ra HTML, CSV, JSON và Markdown
Ngoài .xlsx, một Workbook có thể tự vẽ ra dưới dạng văn bản trực tiếp với toHtml(), toCsv(), toJson(), và toMarkdown(), hoặc được lưu vào tệp có phần mở rộng chọn định dạng thông qua enum SaveFormat (XLSX, CSV, JSON, MARKDOWN, HTML).
const workbook = new Workbook();
const sheet = workbook.worksheets[0]!;
sheet.putValue("A1", "Name");
sheet.putValue("B1", "Age");
sheet.putValue("A2", "Alice");
sheet.putValue("B2", 25);
sheet.putValue("A3", "Bob");
sheet.putValue("B3", 30);
console.log("JSON:", workbook.toJson());
console.log("Markdown:\n", workbook.toMarkdown());
await workbook.save("report.csv");
await workbook.save("report.html");
Bắt đầu nhanh
git clone https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-TypeScript.git
cd Aspose.Cells-FOSS-for-TypeScript
npm install
npm run buildimport { Workbook, Style } from "excel-cells";
const workbook = new Workbook();
const sheet = workbook.worksheets.get(0)!;
sheet.name = "Summary";
sheet.putValue("A1", "Item");
sheet.putValue("B1", "Count");
sheet.putValue("A2", "Widgets");
sheet.putValue("B2", 12);
sheet.putValue("A3", "Gadgets");
sheet.putValue("B3", 7);
const totalCell = sheet.getCell2("B4");
totalCell.setFormula("=SUM(B2:B3)");
const numberStyle = new Style();
numberStyle.setNumberFormat("0");
sheet.getCell2("B2").setStyle(numberStyle);
sheet.getCell2("B3").setStyle(numberStyle);
sheet.getCell2("B4").setStyle(numberStyle);
const detail = workbook.worksheets.addWorksheet("Detail");
detail.putValue("A1", "Raw Data");
await workbook.save("summary.xlsx");
const reloaded = await Workbook.load("summary.xlsx");
console.log("Worksheets:", reloaded.worksheets.length);
console.log("B4 formula:", reloaded.worksheets.get(0)!.getCell(3, 1)?.formula);
Định dạng được hỗ trợ
| Định dạng | Phần mở rộng | Đọc | Ghi |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
| HTML | .html | ✓ | ✓ |
| CSV | .csv | — | ✓ |
| JSON | .json | — | ✓ |
| Markdown | .md | — | ✓ |
Mã nguồn mở & Giấy phép
Aspose.Cells FOSS cho TypeScript được phát hành dưới giấy phép MIT. Mã nguồn có sẵn trên GitHub. Việc sử dụng thương mại được phép theo các điều khoản của giấy phép MIT.