Introduzione
Aspose.Cells FOSS per TypeScript espone le sue funzionalità tramite un set compatto di classi di base: Workbook, WorksheetCollection, Worksheet, Cell e Style, oltre a tipi di supporto per formattazione e filtraggio. Questo post è un tour sistematico di quella superficie core API – non un singolo argomento ristretto, ma i fondamenti che ogni applicazione costruita sulla libreria finisce per utilizzare: aprire e salvare cartelle di lavoro, navigare tra i fogli di lavoro, leggere e scrivere valori e formule delle celle, applicare stili, filtrare dati e esportare in altri formati.
Ogni sezione di seguito copre un’area del API con i metodi e le proprietà concrete coinvolte, supportata da esempi funzionanti di TypeScript. L’obiettivo è fornire un modello mentale operativo di come i componenti si integrano, da new Workbook() fino alle singole proprietà di Cell.
Caratteristiche principali
Fondamentali di cartella di lavoro e foglio di lavoro
Una Workbook viene creata vuota con new Workbook() oppure caricata in modo asincrono da un file esistente con Workbook.load(filePath, password). Ogni cartella di lavoro espone worksheets, un WorksheetCollection che supporta indicizzazione, iterazione e metodi in stile array (map, filter, forEach, find, indexOf) oltre a addWorksheet(name), removeWorksheet(index) e moveWorksheet(fromIndex, toIndex). Chiama workbook.save(filePath, options) per persistere le modifiche.
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");
Accesso alle celle e valori
Un Worksheet legge e scrive celle tramite putValue(key, value), getCell2(key) (restituisce un Cell, creandolo se assente), getCell(row, col) (restituisce Cell | undefined), e getCellByRef(ref). Ogni Cell espone value, formula, row, col e ref come proprietà, e setFormula() / setStyle() / setHyperlink() come metodi.
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");
Stile, Font, Bordo e Allineamento
Style raggruppa impostazioni di font, riempimento, bordo, allineamento e formato numerico per una cella. Leggi o sostituisci gli interi sotto-oggetti con getFont()/setFont(), getBorder()/setBorder() e getAlignment()/setAlignment(), oppure usa i setter di convenienza direttamente su Style, come setFontName(), setFontSize(), setBold(), setHorizontalAlignment() e setNumberFormat(). Applica il Style completato a una cella 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");
Filtraggio automatico con la classe AutoFilter
Worksheet.setAutoFilter(range) è una scorciatoia per il caso comune, ma la classe AutoFilter sottostante può anche essere usata direttamente: costruiscila con un intervallo, poi chiama addFilterColumn(col, filters, blank) per colonna per definire quali valori devono rimanere visibili, oppure removeFilterColumn(col) / clear() per annullare il filtro.
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");
Esportazione in HTML, CSV, JSON e Markdown
Oltre a .xlsx, un Workbook può renderizzarsi direttamente come testo con toHtml(), toCsv(), toJson() e toMarkdown(), oppure essere salvato in un file la cui estensione seleziona il formato tramite l’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");
Avvio rapido
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);
Formati supportati
| Formato | Estensione | Leggi | Scrivi |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
| HTML | .html | ✓ | ✓ |
| CSV | .csv | — | ✓ |
| JSON | .json | — | ✓ |
| Markdown | .md | — | ✓ |
Open Source e Licenze
Aspose.Cells FOSS per TypeScript è rilasciato sotto licenza MIT. Il codice sorgente è disponibile su GitHub. L’uso commerciale è consentito secondo i termini della licenza MIT.