Úvod
Aspose.Cells FOSS pro TypeScript zpřístupňuje svou funkčnost prostřednictvím kompaktní sady základních tříd: Workbook, WorksheetCollection, Worksheet, Cell a Style, plus podpůrné typy pro formátování a filtrování. Tento příspěvek je systematickým průvodcem tímto základním rozhraním API – ne jedním úzkým tématem, ale základy, které každá aplikace postavená na knihovně používá: otevírání a ukládání sešitů, navigaci v listích, čtení a zápis hodnot a vzorců buněk, aplikaci stylů, filtrování dat a export do jiných formátů.
Každá následující sekce pokrývá jednu oblast API s konkrétními metodami a vlastnostmi, podpořenými funkčními příklady TypeScript. Cílem je poskytnout vám funkční mentální model toho, jak se jednotlivé části spojují, od new Workbook() až po jednotlivé vlastnosti Cell.
Klíčové funkce
Základy sešitu a pracovního listu
Objekt Workbook je buď vytvořen prázdný pomocí new Workbook(), nebo načten asynchronně ze stávajícího souboru pomocí Workbook.load(filePath, password). Každý sešit poskytuje worksheets, což je WorksheetCollection, který podporuje indexaci, iteraci a metody ve stylu pole (map, filter, forEach, find, indexOf) kromě addWorksheet(name), removeWorksheet(index) a moveWorksheet(fromIndex, toIndex). Pro uložení změn zavolejte 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");
Přístup k buňkám a hodnoty
Worksheet čte a zapisuje buňky prostřednictvím putValue(key, value), getCell2(key) (vrací Cell, vytvoří jej, pokud chybí), getCell(row, col) (vrací Cell | undefined) a getCellByRef(ref). Každý Cell vystavuje value, formula, row, col a ref jako vlastnosti a 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, písmo, okraj a zarovnání
Style seskupuje nastavení písma, výplně, okraje, zarovnání a formátu čísel pro buňku. Celé podobjekty lze číst nebo nahrazovat pomocí getFont()/setFont(), getBorder()/setBorder() a getAlignment()/setAlignment(), nebo použít pohodlné nastaviteli přímo na Style, jako jsou setFontName(), setFontSize(), setBold(), setHorizontalAlignment() a setNumberFormat(). Aplikujte hotový Style na buňku pomocí 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");
Automatické filtrování pomocí třídy AutoFilter
Worksheet.setAutoFilter(range) je zkratka pro běžný případ, ale podkladová třída AutoFilter může být také použita přímo: vytvořte ji s rozsahem, pak zavolejte addFilterColumn(col, filters, blank) pro každý sloupec, abyste určili, které hodnoty mají zůstat viditelné, nebo removeFilterColumn(col) / clear() pro zrušení filtrování.
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");
Export do HTML, CSV, JSON a Markdown
Mimo .xlsx může Workbook vykreslit sám sebe přímo jako text pomocí toHtml(), toCsv(), toJson() a toMarkdown(), nebo být uložen do souboru, jehož přípona vybírá formát pomocí výčtu 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");
Rychlý 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);
Podporované formáty
| Formát | Přípona | Číst | Zapsat |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
| HTML | .html | ✓ | ✓ |
| CSV | .csv | — | ✓ |
| JSON | .json | — | ✓ |
| Markdown | .md | — | ✓ |
Open Source a licencování
Aspose.Cells FOSS pro TypeScript je vydáno pod licencí MIT. Zdrojový kód je k dispozici na GitHub. Komerční použití je povoleno podle podmínek licence MIT.