Introducción
Aspose.Cells FOSS para TypeScript expone su funcionalidad a través de un conjunto compacto de clases centrales: Workbook, WorksheetCollection, Worksheet, Cell y Style, además de tipos de soporte para formato y filtrado. Esta publicación es un recorrido sistemático por esa superficie central de API – no un tema estrecho único, sino los fundamentos que toda aplicación construida sobre la biblioteca termina usando: abrir y guardar libros de trabajo, navegar hojas de cálculo, leer y escribir valores y fórmulas de celdas, aplicar estilos, filtrar datos y exportar a otros formatos.
Cada sección a continuación cubre una área del API con los métodos y propiedades concretos involucrados, respaldada por ejemplos funcionales de TypeScript. El objetivo es ofrecerte un modelo mental funcional de cómo encajan las piezas, desde new Workbook() hasta las propiedades individuales de Cell.
Características clave
Fundamentos de Libro de trabajo y Hoja de cálculo
Un Workbook se crea vacío con new Workbook() o se carga de forma asíncrona desde un archivo existente con Workbook.load(filePath, password). Cada libro de trabajo expone worksheets, un WorksheetCollection que admite indexación, iteración y métodos al estilo de matrices (map, filter, forEach, find, indexOf) además de addWorksheet(name), removeWorksheet(index) y moveWorksheet(fromIndex, toIndex). Llama a workbook.save(filePath, options) para persistir los cambios.
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");
Acceso a celdas y valores
Un Worksheet lee y escribe celdas a través de putValue(key, value), getCell2(key) (devuelve un Cell, creándolo si está ausente), getCell(row, col) (devuelve Cell | undefined), y getCellByRef(ref). Cada Cell expone value, formula, row, col y ref como propiedades, y 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, Fuente, Borde y Alineación
Style agrupa la fuente, el relleno, el borde, la alineación y la configuración de formato numérico para una celda. Lea o reemplace sub-objetos completos con getFont()/setFont(), getBorder()/setBorder() y getAlignment()/setAlignment(), o use los establecedores de conveniencia directamente en Style, como setFontName(), setFontSize(), setBold(), setHorizontalAlignment() y setNumberFormat(). Aplique el Style final a una celda con 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");
Filtrado automático con la clase AutoFilter
Worksheet.setAutoFilter(range) es un atajo para el caso común, pero la clase subyacente AutoFilter también puede usarse directamente: constrúyala con un rango y luego llame a addFilterColumn(col, filters, blank) por columna para definir qué valores deben permanecer visibles, o removeFilterColumn(col) / clear() para deshacer el filtrado.
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 a HTML, CSV, JSON y Markdown
Más allá de .xlsx, un Workbook puede renderizarse directamente como texto con toHtml(), toCsv(), toJson() y toMarkdown(), o guardarse en un archivo cuya extensión selecciona el formato mediante el enumerado 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");
Inicio 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 compatibles
| Formato | Extensión | Leer | Escribir |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
| HTML | .html | ✓ | ✓ |
| CSV | .csv | — | ✓ |
| JSON | .json | — | ✓ |
| Markdown | .md | — | ✓ |
Código abierto y licencias
Aspose.Cells FOSS para TypeScript se publica bajo la licencia MIT. El código fuente está disponible en GitHub. El uso comercial está permitido bajo los términos de la licencia MIT.