Вступ

Aspose.Cells FOSS для TypeScript надає свою функціональність через компактний набір основних класів: Workbook, WorksheetCollection, Worksheet, Cell та Style, а також допоміжних типів для форматування та фільтрування. Цей допис — це систематичний огляд того основного API поверху — не одна вузька тема, а фундаментальні можливості, які використовують усі застосунки, створені на базі бібліотеки: відкриття та збереження робочих книг, навігація по листах, читання та запис значень і формул у комірках, застосування стилів, фільтрація даних та експорт у інші формати.

Кожен розділ нижче охоплює одну область API з конкретними методами та властивостями, підкріпленими робочими прикладами TypeScript. Мета — надати вам дієву ментальну модель того, як елементи взаємодіють, від new Workbook() до окремих властивостей Cell.


Ключові особливості

Основи робочих книг і листів

Workbook або створюється порожньою за допомогою new Workbook(), або завантажується асинхронно з існуючого файлу за допомогою Workbook.load(filePath, password). Кожна робоча книга надає worksheets, WorksheetCollection, який підтримує індексування, ітерацію та методи в стилі масиву (map, filter, forEach, find, indexOf) на додаток до addWorksheet(name), removeWorksheet(index) та moveWorksheet(fromIndex, toIndex). Викличте workbook.save(filePath, options), щоб зберегти зміни.

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");

Доступ до комірок та значень

A Worksheet читає та записує клітини через putValue(key, value), getCell2(key) (повертає Cell, створюючи його, якщо відсутній), getCell(row, col) (повертає Cell | undefined) та getCellByRef(ref). Кожен Cell надає value, formula, row, col та ref як властивості, а setFormula() / setStyle() / setHyperlink() — як методи.

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");

Стиль, Шрифт, Кордон та Вирівнювання

Style групує налаштування шрифту, заливки, межі, вирівнювання та форматування чисел для клітини. Читайте або замінюйте цілі підоб’єкти за допомогою getFont()/setFont(), getBorder()/setBorder() та getAlignment()/setAlignment(), або використовуйте зручні сеттери безпосередньо на Style, такі як setFontName(), setFontSize(), setBold(), setHorizontalAlignment() та setNumberFormat(). Застосуйте готовий Style до клітини за допомогою 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");

Автофільтрація за допомогою класу AutoFilter

Worksheet.setAutoFilter(range) — це скорочення для поширеного випадку, але базовий клас AutoFilter також можна використовувати безпосередньо: створіть його з діапазоном, потім викличте addFilterColumn(col, filters, blank) для кожного стовпця, щоб визначити, які значення мають залишатися видимими, або removeFilterColumn(col) / clear() для скасування фільтрації.

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");

Експорт у HTML, CSV, JSON та Markdown

Поза .xlsx, Workbook може безпосередньо відображати себе як текст за допомогою toHtml(), toCsv(), toJson() та toMarkdown(), або зберігатися у файл, розширення якого вибирає формат через перелік 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");

Швидкий старт

git clone https://github.com/aspose-cells-foss/Aspose.Cells-FOSS-for-TypeScript.git
cd Aspose.Cells-FOSS-for-TypeScript
npm install
npm run build
import { 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);

Підтримувані формати

ФорматРозширенняЧитатиЗапис
XLSX.xlsx✓✓
HTML.html✓✓
CSV.csv—✓
JSON.json—✓
Markdown.md—✓

Відкритий код та ліцензування

Aspose.Cells FOSS для TypeScript випущено під ліцензією MIT. Вихідний код доступний на GitHub. Комерційне використання дозволено за умовами ліцензії MIT.


Початок роботи

Пов’язані ресурси