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ตัวเลือกสำหรับการโหลดไฟล์แบบทนต่อข้อผิดพลาด

ดูเพิ่มเติม

 ภาษาไทย