บทนำ
Aspose.Cells FOSS for TypeScript เปิดเผยฟังก์ชันผ่านชุดคลาสหลักที่กะทัดรัด: Workbook, WorksheetCollection, Worksheet, Cell, และ Style, พร้อมประเภทสนับสนุนสำหรับการจัดรูปแบบและการกรอง. บทความนี้เป็นการทัวร์เชิงระบบของพื้นผิว API หลัก – ไม่ใช่หัวข้อแคบเดียว, แต่เป็นพื้นฐานที่ทุกแอปพลิเคชันที่สร้างบนไลบรารีต้องใช้: การเปิดและบันทึกเวิร์กบุ๊ก, การนำทางเวิร์กชีต, การอ่านและเขียนค่าของเซลล์และสูตร, การใช้สไตล์, การกรองข้อมูล, และการส่งออกเป็นรูปแบบอื่น.
แต่ละส่วนด้านล่างครอบคลุมพื้นที่หนึ่งของ API พร้อมวิธีการและคุณสมบัติที่เป็นรูปธรรมที่เกี่ยวข้อง, รองรับด้วยตัวอย่าง TypeScript ที่ทำงานได้. เป้าหมายคือให้คุณมีโมเดลเชิงจิตใจที่ทำงานได้เกี่ยวกับการที่ส่วนต่างๆ เชื่อมต่อกัน, ตั้งแต่ new Workbook() จนถึงคุณสมบัติ Cell แต่ละรายการ.
คุณลักษณะสำคัญ
พื้นฐานของ Workbook และ Worksheet
A Workbook ถูกสร้างเป็นค่าว่างด้วย new Workbook() หรือโหลดแบบอะซิงโครนัสจากไฟล์ที่มีอยู่ด้วย Workbook.load(filePath, password). ทุก workbook เปิดเผย worksheets, ซึ่งเป็น WorksheetCollection ที่รองรับการทำดัชนี, การวนซ้ำ, และวิธีการแบบอาเรย์ (map, filter, forEach, find, indexOf) นอกเหนือจาก addWorksheet(name), removeWorksheet(index), และ moveWorksheet(fromIndex, toIndex). เรียก 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");
การเข้าถึงและค่าของ Cell
A Worksheet อ่านและเขียนเซลล์ผ่าน putValue(key, value), getCell2(key) (ส่งคืน Cell, สร้างหากไม่มี), getCell(row, col) (ส่งคืน Cell | undefined), และ getCellByRef(ref). แต่ละ Cell เปิดเผย value, formula, row, col, และ ref เป็นคุณสมบัติ, และ setFormula() / setStyle() / setHyperlink() เป็นเมธอด.
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");
สไตล์, ฟอนต์, เส้นขอบ, และการจัดแนว
Style จัดกลุ่มการตั้งค่าแบบอักษร, การเติมสี, เส้นขอบ, การจัดแนว, และรูปแบบตัวเลขสำหรับเซลล์หนึ่ง. อ่านหรือแทนที่วัตถุย่อยทั้งหมดด้วย getFont()/setFont(), getBorder()/setBorder(), และ getAlignment()/setAlignment(), หรือใช้ตัวตั้งค่าที่สะดวกโดยตรงบน Style, เช่น setFontName(), setFontSize(), setBold(), setHorizontalAlignment(), และ setNumberFormat(). นำ Style ที่เสร็จแล้วไปใช้กับเซลล์ด้วย 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");
การกรองอัตโนมัติด้วยคลาส AutoFilter
Worksheet.setAutoFilter(range) เป็นทางลัดสำหรับกรณีทั่วไป, แต่คลาส AutoFilter พื้นฐานก็สามารถใช้โดยตรงได้: สร้างด้วยช่วง, จากนั้นเรียก addFilterColumn(col, filters, blank) ต่อคอลัมน์เพื่อกำหนดค่าที่ควรแสดง, หรือ removeFilterColumn(col) / clear() เพื่อยกเลิกการกรอง.
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");
การส่งออกเป็น HTML, CSV, JSON, และ Markdown
นอกเหนือจาก .xlsx, Workbook สามารถเรนเดอร์ตัวเองเป็นข้อความโดยตรงด้วย toHtml(), toCsv(), toJson(), และ toMarkdown(), หรือบันทึกเป็นไฟล์ที่นามสกุลเลือกรูปแบบผ่าน 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");
เริ่มต้นอย่างรวดเร็ว
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);
รูปแบบที่รองรับ
| รูปแบบ | ส่วนขยาย | อ่าน | เขียน |
|---|---|---|---|
| XLSX | .xlsx | ✓ | ✓ |
| HTML | .html | ✓ | ✓ |
| CSV | .csv | — | ✓ |
| JSON | .json | — | ✓ |
| Markdown | .md | — | ✓ |
โอเพนซอร์ส & ใบอนุญาต
Aspose.Cells FOSS สำหรับ TypeScript ได้รับการเผยแพร่ภายใต้ใบอนุญาต MIT. รหัสต้นฉบับพร้อมให้บริการที่ GitHub. การใช้งานเชิงพาณิชย์ได้รับอนุญาตตามเงื่อนไขของใบอนุญาต MIT.