Features
คุณสมบัติ
Aspose.Cells FOSS สำหรับ .NET เป็นไลบรารี .NET ที่จัดการแบบบริสุทธิ์สำหรับการสร้าง, อ่าน, และแก้ไขสเปรดชีต Excel XLSX. จุดเริ่มต้นคือคลาส Workbook, ซึ่งให้การเข้าถึง worksheets, defined names, และการดำเนินการ save/load. หน้านี้สรุปทุกพื้นที่คุณลักษณะหลักพร้อมตัวอย่างโค้ดสั้น ๆ.
Workbook สร้าง, โหลด, และบันทึก
สร้าง workbook ใหม่ด้วย new Workbook(). โหลดไฟล์ XLSX ที่มีอยู่โดยส่งพาธไฟล์ไปยังคอนสตรัคเตอร์. ใช้ LoadOptions เพื่อเปิดการโหลดที่ทนต่อข้อผิดพลาด. เรียก Workbook.Save(path) เพื่อบันทึกการเปลี่ยนแปลง.
using Aspose.Cells_FOSS;
// New workbook
var wb = new Workbook();
wb.Worksheets[0].Cells["A1"].PutValue("Hello");
wb.Save("output.xlsx");
// Load with repair options
var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
try
{
var loaded = new Workbook("input.xlsx", opts);
Console.WriteLine(loaded.Worksheets[0].Cells["A1"].StringValue);
}
catch (WorkbookLoadException ex)
{
Console.WriteLine("Load failed: " + ex.Message);
}ข้อมูลและสูตรของเซลล์
ใช้ Cell.PutValue() เพื่อเขียนสตริง, จำนวนเต็ม, จำนวนทศนิยม, บูลีน, และค่า DateTime. ตั้งค่า Cell.Formula เพื่อกำหนดสูตรในรูปแบบที่เข้ากันได้กับ Excel. อ่านข้อความที่แสดงผลกลับผ่าน Cell.StringValue และค่าดิบผ่าน Cell.Value.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
ws.Cells["A1"].PutValue("Qty");
ws.Cells["B1"].PutValue("Price");
ws.Cells["C1"].PutValue("Total");
ws.Cells["A2"].PutValue(10);
ws.Cells["B2"].PutValue(4.99m);
ws.Cells["C2"].Formula = "=A2*B2";
wb.Save("data.xlsx");
var loaded = new Workbook("data.xlsx");
Console.WriteLine(loaded.Worksheets[0].Cells["C2"].StringValue); // 49.9การจัดรูปแบบเซลล์
ดึงและแก้ไขวัตถุ Style สำหรับเซลล์ใด ๆ ที่มี Cell.GetStyle() และ Cell.SetStyle(). คลาส Style ให้ Font (ตัวหนา, ตัวเอียง, ขนาด, ชื่อ), ForegroundColor, Pattern (ประเภท FillPattern), HorizontalAlignment (โดยใช้ HorizontalAlignmentType), และการควบคุมเส้นขอบผ่าน Borders.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var cell = wb.Worksheets[0].Cells["A1"];
cell.PutValue("Styled Header");
var style = cell.GetStyle();
style.Font.Bold = true;
style.Font.Size = 14;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 198, 239, 206);
style.HorizontalAlignment = HorizontalAlignmentType.Center;
cell.SetStyle(style);
wb.Save("styled.xlsx");การจัดรูปแบบตามเงื่อนไข
Worksheet.ConditionalFormattings คืนค่า ConditionalFormattingCollection. เรียก Add() เพื่อสร้างชุดกฎ, จากนั้น AddCondition() เพื่อเพิ่มกฎโดยใช้ FormatConditionType และ OperatorType. ประเภทเงื่อนไขที่รองรับรวมถึง CellValue, Expression, ColorScale, DataBar, และ IconSet.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
for (var i = 0; i < 10; i++)
ws.Cells[i, 0].PutValue(i + 1);
var ruleSet = ws.ConditionalFormattings[ws.ConditionalFormattings.Add()];
ruleSet.AddArea(CellArea.CreateCellArea("A1", "A10"));
var rule = ruleSet[ruleSet.AddCondition(FormatConditionType.CellValue, OperatorType.Between, "3", "7")];
var ruleStyle = rule.Style;
ruleStyle.Pattern = FillPattern.Solid;
ruleStyle.ForegroundColor = Color.FromArgb(255, 255, 199, 206);
rule.Style = ruleStyle;
wb.Save("cf.xlsx");การตรวจสอบความถูกต้องของข้อมูล
Worksheet.Validations คืนค่า ValidationCollection. เรียก Add(CellArea) เพื่อสร้าง Validation สำหรับช่วงเซลล์. ตั้งค่าคุณสมบัติ Type โดยใช้ ValidationType (List, Decimal, หรือ Custom). ตั้งค่า Formula1, Formula2, Operator, InputTitle, InputMessage, ErrorTitle, และ ErrorMessage.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
var listVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A1", "A10"))];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,Closed,Pending\"";
listVal.InCellDropDown = true;
var numVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B1", "B10"))];
numVal.Type = ValidationType.Decimal;
numVal.Operator = OperatorType.Between;
numVal.Formula1 = "0";
numVal.Formula2 = "100";
numVal.ShowError = true;
wb.Save("validation.xlsx");ตัวกรองอัตโนมัติ
Worksheet.AutoFilter แสดงวัตถุ AutoFilter. ตั้งค่า AutoFilter.Range เพื่อกำหนดช่วงแถวหัวตาราง. เข้าถึง AutoFilter.FilterColumns (คอลเลกชัน) และเรียก Add(columnIndex) เพื่อเปิดใช้งานการกรองบนคอลัมน์เฉพาะ.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
ws.Cells["A1"].PutValue("Name");
ws.Cells["B1"].PutValue("Region");
ws.Cells["C1"].PutValue("Sales");
ws.Cells["A2"].PutValue("Alice"); ws.Cells["B2"].PutValue("North"); ws.Cells["C2"].PutValue(1200);
ws.AutoFilter.Range = "A1:C1";
ws.AutoFilter.FilterColumns.Add(1);
wb.Save("filter.xlsx");ไฮเปอร์ลิงก์และชื่อที่กำหนดไว้
Worksheet.Hyperlinks เป็น HyperlinkCollection. เรียก Add() เพื่อแทรก URL ภายนอก, การอ้างอิงเซลล์ภายใน, หรือลิงก์ mailto. ตั้งค่า Hyperlink.TextToDisplay และ Hyperlink.ScreenTip สำหรับข้อความที่ผู้ใช้มองเห็น. Workbook.DefinedNames เป็น DefinedNameCollection; เรียก Add(name, refersTo) เพื่อสร้างช่วงที่มีชื่อ.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
ws.Cells["A1"].PutValue("Docs");
var link = ws.Hyperlinks[ws.Hyperlinks.Add("A1", 1, 1, "https://docs.aspose.org/cells/net/")];
link.TextToDisplay = "Documentation";
wb.DefinedNames[wb.DefinedNames.Add("DataRange", "Sheet1!$A$1:$D$10")].Comment = "Main data range";
wb.Save("links.xlsx");การตั้งค่าหน้า
Worksheet.PageSetup ควบคุมขอบการพิมพ์, การวางแนว, ขนาดกระดาษ, พื้นที่การพิมพ์, แถว/คอลัมน์หัวเรื่อง, ส่วนหัว, ส่วนท้าย, และการแยกหน้า. ใช้ PageOrientationType และ PaperSizeType enums.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ps = wb.Worksheets[0].PageSetup;
ps.Orientation = PageOrientationType.Landscape;
ps.PaperSize = PaperSizeType.PaperA4;
ps.PrintArea = "$A$1:$H$50";
ps.CenterHeader = "My Report";
ps.CenterHorizontally = true;
ps.AddHorizontalPageBreak(25);
wb.Save("paged.xlsx");การจัดการแผ่นงาน
เพิ่ม, เปลี่ยนชื่อ, ซ่อน, และจัดลำดับใหม่ของแผ่นงานผ่าน WorksheetCollection. WorksheetCollection.Add(name) คืนค่าดัชนีของแผ่นใหม่. ตั้งค่า Worksheet.VisibilityType โดยใช้ VisibilityType. ผสานเซลล์ด้วย Cells.Merge() และควบคุมขนาดแถว/คอลัมน์ผ่าน Cells.Rows และ Cells.Columns.
using Aspose.Cells_FOSS;
var wb = new Workbook();
wb.Worksheets[0].Name = "Summary";
var dataIdx = wb.Worksheets.Add("Data");
wb.Worksheets[dataIdx].VisibilityType = VisibilityType.Hidden;
wb.Worksheets.ActiveSheetName = "Summary";
var ws = wb.Worksheets["Summary"];
ws.Cells["A1"].PutValue("Title");
ws.Cells.Merge(0, 0, 1, 4);
ws.Cells.Rows[0].Height = 30d;
ws.Cells.Columns[0].Width = 20d;
wb.Save("worksheets.xlsx");เคล็ดลับและแนวปฏิบัติที่ดีที่สุด
- ควรดักจับ
WorkbookLoadExceptionเสมอเมื่อโหลดไฟล์จากเส้นทางที่ผู้ใช้ระบุ. - ใช้
Cell.PutValue()พร้อมประเภท .NET ที่ต้องการเก็บอย่างแม่นยำ — ส่งdecimalสำหรับสกุลเงิน,DateTimeสำหรับวันที่. - อ่าน
Cell.StringValueสำหรับข้อความที่จะแสดง; ใช้Cell.Valueเมื่อคุณต้องการอ็อบเจ็กต์ .NET ดิบ. - สร้างชุดกฎการจัดรูปแบบตามเงื่อนไขบนช่วงที่กว้างที่สุดที่คุณต้องการ — กฎต่อแถวมีค่าใช้จ่ายสูงในแผ่นงานขนาดใหญ่.
- เรียก
wb.Save()หนึ่งครั้งที่ท้ายสุดแทนที่จะเรียกหลังจากเขียนแต่ละเซลล์.
ปัญหาทั่วไป
| ปัญหา | สาเหตุ | วิธีแก้ |
|---|---|---|
WorkbookLoadException เมื่อเปิด | โครงสร้าง ZIP เสียหายใน XLSX | ตั้งค่า LoadOptions.TryRepairPackage = true |
สูตรคืนค่า StringValue ว่าง | สูตรไม่คำนวณใหม่เมื่อโหลด | เข้าถึง Cell.StringValue หลังจากการเดินทางไป-กลับ Workbook.Save() |
| ที่อยู่ไฮเปอร์ลิงก์แสดง URL ดิบ | TextToDisplay ไม่ได้ตั้งค่า | ตั้งค่า Hyperlink.TextToDisplay หลังจาก Add() |
| แท็บแผ่นงานไม่ปรากฏ | VisibilityType ตั้งค่าเป็น Hidden | ตั้งค่า ws.VisibilityType = VisibilityType.Visible |
FAQ
Aspose.Cells FOSS สำหรับ .NET ต้องการ Microsoft Office หรือไม่?
ไม่. ไลบรารีเป็นโค้ดที่จัดการโดยบริสุทธิ์และไม่มีการพึ่งพา Office, Excel หรือ COM interop.
รูปแบบไฟล์ใดบ้างที่รองรับ?
XLSX (อ่านและเขียน). CSV, ODS, PDF, และ binary XLS ไม่ได้รับการสนับสนุนในเวอร์ชันนี้.
ฉันสามารถใช้ไลบรารีนี้ในแอปพลิเคชันเชิงพาณิชย์ได้หรือไม่?
ใช่. Aspose.Cells FOSS ได้รับการเผยแพร่ภายใต้ MIT License ซึ่งอนุญาตให้ใช้เชิงพาณิชย์โดยไม่มีข้อจำกัดและไม่มีค่าลิขสิทธิ์.
เวอร์ชันขั้นต่ำของ .NET คืออะไร?
.NET 6.0 หรือใหม่กว่า.
ฉันจะใส่สีพื้นหลังให้กับเซลล์อย่างไร?
ตั้งค่า style.Pattern = FillPattern.Solid และ style.ForegroundColor = Color.FromArgb(...) แล้วเรียก cell.SetStyle(style).
API Reference สรุป
| คลาส / เมธอด | คำอธิบาย |
|---|---|
Workbook | คลาสราก — สร้าง, โหลด, บันทึกเวิร์กบุ๊ก |
Workbook.Worksheets | คืนค่า WorksheetCollection |
Workbook.Save(path) | บันทึก workbook ลงดิสก์ |
Workbook.DefinedNames | คอลเลกชัน Named ranges |
Worksheet.Cells | การเข้าถึง Cell grid |
Worksheet.ConditionalFormattings | ชุดกฎการจัดรูปแบบตามเงื่อนไข |
Worksheet.Validations | กฎการตรวจสอบข้อมูล |
Worksheet.AutoFilter | การกำหนดค่าตัวกรองอัตโนมัติ |
Worksheet.Hyperlinks | ชุดรวมลิงก์ |
Worksheet.PageSetup | การตั้งค่าการจัดหน้าแบบพิมพ์ |
Cell.PutValue() | เขียนข้อมูลเซลล์ที่พิมพ์ |
Cell.Formula | สตริงสูตรที่เข้ากันได้กับ Excel |
Cell.GetStyle() / Cell.SetStyle() | อ่าน/เขียนรูปแบบเซลล์ |
Style.Pattern | รูปแบบการเติม (FillPattern enum) |
Style.HorizontalAlignment | การจัดแนวเซลล์ (HorizontalAlignmentType) |
LoadOptions | ตัวเลือกสำหรับการโหลดไฟล์แบบทนต่อข้อผิดพลาด |