Pendahuluan
Aspose.Cells FOSS untuk TypeScript mengekspose fungsionalitasnya melalui seperangkat kelas inti yang kompak: Workbook, WorksheetCollection, Worksheet, Cell, dan Style, plus tipe pendukung untuk pemformatan dan penyaringan. Posting ini adalah tur sistematis dari permukaan inti API – bukan satu topik sempit, melainkan dasar-dasar yang digunakan oleh setiap aplikasi yang dibangun di atas perpustakaan: membuka dan menyimpan workbook, menavigasi worksheet, membaca dan menulis nilai sel serta formula, menerapkan gaya, menyaring data, dan mengekspor ke format lain.
Setiap bagian di bawah ini mencakup satu area dari API dengan metode dan properti konkret yang terlibat, didukung oleh contoh TypeScript yang berfungsi. Tujuannya adalah memberi Anda model mental yang berfungsi tentang bagaimana bagian-bagian tersebut saling terhubung, dari new Workbook() hingga properti Cell individu.
Fitur Utama
Dasar-dasar Workbook dan Worksheet
Suatu Workbook dapat dibuat kosong dengan new Workbook() atau dimuat secara asynchronous dari file yang ada dengan Workbook.load(filePath, password). Setiap workbook mengekspose worksheets, sebuah WorksheetCollection yang mendukung pengindeksan, iterasi, dan metode gaya array (map, filter, forEach, find, indexOf) selain addWorksheet(name), removeWorksheet(index), dan moveWorksheet(fromIndex, toIndex). Panggil workbook.save(filePath, options) untuk menyimpan perubahan.
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");
Akses Sel dan Nilai
Sebuah Worksheet membaca dan menulis sel melalui putValue(key, value), getCell2(key) (mengembalikan Cell, membuatnya jika tidak ada), getCell(row, col) (mengembalikan Cell | undefined), dan getCellByRef(ref). Setiap Cell mengekspos value, formula, row, col, dan ref sebagai properti, dan setFormula() / setStyle() / setHyperlink() sebagai metode.
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");
Gaya, Font, Batas, dan Penjajaran
Style mengelompokkan pengaturan font, isi, batas, penjajaran, dan format angka untuk sebuah sel. Baca atau ganti seluruh sub-objek dengan getFont()/setFont(), getBorder()/setBorder(), dan getAlignment()/setAlignment(), atau gunakan setter kemudahan langsung pada Style, seperti setFontName(), setFontSize(), setBold(), setHorizontalAlignment(), dan setNumberFormat(). Terapkan Style yang selesai ke sebuah sel dengan 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");
Penyaringan Otomatis dengan Kelas AutoFilter
Worksheet.setAutoFilter(range) adalah pintasan untuk kasus umum, tetapi kelas AutoFilter yang mendasarinya juga dapat digunakan secara langsung: buatlah dengan rentang, kemudian panggil addFilterColumn(col, filters, blank) per kolom untuk menentukan nilai mana yang harus tetap terlihat, atau removeFilterColumn(col) / clear() untuk membatalkan penyaringan.
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");
Mengekspor ke HTML, CSV, JSON, dan Markdown
Selain .xlsx, sebuah Workbook dapat merender dirinya langsung sebagai teks dengan toHtml(), toCsv(), toJson(), dan toMarkdown(), atau disimpan ke file yang ekstensi nya memilih format melalui 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");
Mulai Cepat
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);
Format yang Didukung
| Format | Ekstensi | Baca | Tulis |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
| HTML | .html | ✓ | ✓ |
| CSV | .csv | — | ✓ |
| JSON | .json | — | ✓ |
| Markdown | .md | — | ✓ |
Sumber Terbuka & Lisensi
Aspose.Cells FOSS untuk TypeScript dirilis di bawah lisensi MIT. Kode sumber tersedia di GitHub. Penggunaan komersial diizinkan di bawah ketentuan lisensi MIT.