Introdução
Aspose.Cells FOSS para TypeScript expõe sua funcionalidade por meio de um conjunto compacto de classes principais: Workbook, WorksheetCollection, Worksheet, Cell e Style, além de tipos de suporte para formatação e filtragem. Este post é um tour sistemático dessa superfície central API — não um tópico estreito único, mas os fundamentos que toda aplicação construída sobre a biblioteca acaba usando: abrir e salvar workbooks, navegar entre worksheets, ler e escrever valores e fórmulas de células, aplicar estilos, filtrar dados e exportar para outros formatos.
Cada seção abaixo cobre uma área do API com os métodos e propriedades concretos envolvidos, sustentados por exemplos funcionais de TypeScript. O objetivo é fornecer a você um modelo mental funcional de como as peças se encaixam, de new Workbook() até propriedades individuais de Cell.
Principais recursos
Fundamentos de Workbook e Worksheet
Um Workbook é criado vazio com new Workbook() ou carregado assincronamente de um arquivo existente com Workbook.load(filePath, password). Cada workbook expõe worksheets, um WorksheetCollection que suporta indexação, iteração e métodos ao estilo de array (map, filter, forEach, find, indexOf) além de addWorksheet(name), removeWorksheet(index) e moveWorksheet(fromIndex, toIndex). Chame workbook.save(filePath, options) para persistir as alterações.
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");
Acesso a células e valores
Uma Worksheet lê e grava células através de putValue(key, value), getCell2(key) (retorna um Cell, criando-o se ausente), getCell(row, col) (retorna Cell | undefined), e getCellByRef(ref). Cada Cell expõe value, formula, row, col e ref como propriedades, e setFormula() / setStyle() / setHyperlink() como métodos.
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");
Estilo, Fonte, Borda e Alinhamento
Style agrupa configurações de fonte, preenchimento, borda, alinhamento e formato numérico para uma célula. Leia ou substitua objetos inteiros com getFont()/setFont(), getBorder()/setBorder() e getAlignment()/setAlignment(), ou use os setters de conveniência diretamente em Style, como setFontName(), setFontSize(), setBold(), setHorizontalAlignment() e setNumberFormat(). Aplique o Style finalizado a uma célula com 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");
Filtragem automática com a classe AutoFilter
Worksheet.setAutoFilter(range) é um atalho para o caso comum, mas a classe subjacente AutoFilter também pode ser usada diretamente: construa-a com um intervalo, então chame addFilterColumn(col, filters, blank) por coluna para definir quais valores devem permanecer visíveis, ou removeFilterColumn(col) / clear() para desfazer a filtragem.
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");
Exportando para HTML, CSV, JSON e Markdown
Além de .xlsx, um Workbook pode renderizar-se diretamente como texto com toHtml(), toCsv(), toJson() e toMarkdown(), ou ser salvo em um arquivo cuja extensão seleciona o formato via o 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");
Início rápido
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);
Formatos suportados
| Formato | Extensão | Ler | Escrever |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
| HTML | .html | ✓ | ✓ |
| CSV | .csv | — | ✓ |
| JSON | .json | — | ✓ |
| Markdown | .md | — | ✓ |
Código aberto e licenciamento
Aspose.Cells FOSS para TypeScript é lançado sob a licença MIT. O código-fonte está disponível em GitHub. O uso comercial é permitido sob os termos da licença MIT.