Wstęp
Aspose.Cells FOSS dla TypeScript udostępnia swoją funkcjonalność poprzez zwartą kolekcję podstawowych klas: Workbook, WorksheetCollection, Worksheet, Cell i Style, plus typy pomocnicze do formatowania i filtrowania. Ten wpis jest systematyczną podróżą po tym podstawowym interfejsie API — nie pojedynczym wąskim tematem, lecz fundamentami, z których korzysta każda aplikacja zbudowana na tej bibliotece: otwieranie i zapisywanie skoroszytów, nawigacja po arkuszach, odczyt i zapis wartości komórek oraz formuł, stosowanie stylów, filtrowanie danych oraz eksport do innych formatów.
Każda sekcja poniżej omawia jeden obszar API wraz z konkretnymi metodami i właściwościami, popartymi działającymi przykładami TypeScript. Celem jest dostarczenie działającego modelu mentalnego, jak elementy ze sobą współgrają, od new Workbook() po pojedyncze właściwości Cell.
Kluczowe funkcje
Podstawy skoroszytu i arkusza
Obiekt Workbook jest tworzony pusty za pomocą new Workbook() lub ładowany asynchronicznie z istniejącego pliku przy użyciu Workbook.load(filePath, password). Każdy skoroszyt udostępnia worksheets, czyli WorksheetCollection, który obsługuje indeksowanie, iterację oraz metody w stylu tablicy (map, filter, forEach, find, indexOf) oprócz addWorksheet(name), removeWorksheet(index) i moveWorksheet(fromIndex, toIndex). Wywołaj workbook.save(filePath, options), aby zachować zmiany.
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");
Dostęp do komórek i ich wartości
A Worksheet odczytuje i zapisuje komórki za pomocą putValue(key, value), getCell2(key) (zwraca Cell, tworząc go w razie braku), getCell(row, col) (zwraca Cell | undefined) oraz getCellByRef(ref). Każdy Cell udostępnia value, formula, row, col i ref jako właściwości oraz setFormula() / setStyle() / setHyperlink() jako metody.
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");
Styl, Czcionka, Obramowanie i Wyrównanie
Style grupuje ustawienia czcionki, wypełnienia, obramowania, wyrównania i formatowania liczb dla komórki. Odczytaj lub zamień całe pod-obiekty przy użyciu getFont()/setFont(), getBorder()/setBorder() oraz getAlignment()/setAlignment(), albo użyj wygodnych setterów bezpośrednio na Style, takich jak setFontName(), setFontSize(), setBold(), setHorizontalAlignment() i setNumberFormat(). Zastosuj gotowy Style do komórki przy użyciu 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");
Filtrowanie automatyczne przy użyciu klasy AutoFilter
Worksheet.setAutoFilter(range) jest skrótem dla typowego przypadku, ale podstawowa klasa AutoFilter może być również użyta bezpośrednio: skonstruuj ją z zakresem, a następnie wywołaj addFilterColumn(col, filters, blank) dla każdej kolumny, aby określić, które wartości mają pozostać widoczne, lub removeFilterColumn(col) / clear(), aby cofnąć filtrowanie.
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");
Eksport do HTML, CSV, JSON i Markdown
Poza .xlsx, Workbook może renderować się bezpośrednio jako tekst przy użyciu toHtml(), toCsv(), toJson() i toMarkdown(), albo zostać zapisany do pliku, którego rozszerzenie wybiera format za pomocą wyliczenia 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");
Szybki start
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);
Obsługiwane formaty
| Format | Rozszerzenie | Odczyt | Zapis |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
| HTML | .html | ✓ | ✓ |
| CSV | .csv | — | ✓ |
| JSON | .json | — | ✓ |
| Markdown | .md | — | ✓ |
Open Source i licencjonowanie
Aspose.Cells FOSS dla TypeScript jest udostępniony na licencji MIT. Kod źródłowy dostępny jest na GitHub. Komercyjne użycie jest dozwolone na warunkach licencji MIT.