บทนำ
Aspose.Cells FOSS สำหรับ .NET เป็นไลบรารีที่เขียนด้วยโค้ดจัดการแบบบริสุทธิ์, มีสัญญาอนุญาต MIT, ใช้สำหรับอ่าน, เขียนและจัดการเวิร์กบุ๊ก Excel .xlsx โดยไม่ต้องพึ่งพา Microsoft Office. ติดตั้งเป็นแพ็กเกจ Aspose.Cells_FOSS NuGet, มันสามารถรวมเข้ากับโครงการ .NET ใด ๆ — แอปคอนโซล, Web API, ตัวทำงานเบื้องหลัง, และฟังก์ชันแบบไม่มีเซิร์ฟเวอร์.
โพสต์นี้ให้การเดินผ่านคุณลักษณะทีละรายการของ API สาธารณะ, แสดงสิ่งที่ทำได้และวิธีเรียกใช้แต่ละความสามารถจากโค้ด C#.
ภาพรวมของคุณลักษณะ
วงจรชีวิตของเวิร์กบุ๊กและแผ่นงาน
จุดเริ่มต้นสำหรับการทำงานทุกอย่างคือคลาส Workbook. สร้างใหม่ตั้งแต่ต้นด้วย new Workbook(), หรือโหลด .xlsx ที่มีอยู่แล้วด้วย new Workbook(filePath) หรือ new Workbook(stream). นำทางแผ่นงานผ่าน Workbook.Worksheets, ตั้งค่า Worksheet.Name และ Worksheet.VisibilityType, และบันทึกด้วย Workbook.Save(). สำหรับไฟล์ที่เสียหาย, ส่งอินสแตนซ์ของ LoadOptions พร้อมกับ TryRepairPackage = true และ TryRepairXml = true.
using Aspose.Cells_FOSS;
var options = new LoadOptions
{
TryRepairPackage = true,
TryRepairXml = true,
};
try
{
_ = new Workbook("sample.xlsx", options);
}
catch (WorkbookLoadException exception)
{
Console.WriteLine(exception.Message);
}
ข้อมูลเซลล์และสูตร
เขียนค่าไปยังเซลล์ด้วย Cell.PutValue() — overloads รับค่า string, int, double, decimal, bool และ DateTime. อ่านค่ากลับผ่าน Cell.Value, Cell.StringValue และ Cell.Formula. ตั้งสูตร Excel ด้วยคุณสมบัติ Cell.Formula; สตริงสูตรจะถูกเก็บไว้เมื่อบันทึกและยังคงอยู่หลังการโหลดใหม่.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Hello");
sheet.Cells["B1"].PutValue(123);
sheet.Cells["C1"].Formula = "=B1*2";
workbook.Save("hello.xlsx");
var loaded = new Workbook("hello.xlsx");
Console.WriteLine(loaded.Worksheets[0].Cells["C1"].Formula);
Console.WriteLine(loaded.Worksheets[0].Cells["C1"].StringValue);
การจัดรูปแบบเซลล์
ใช้วัตถุ Style เพื่อควบคุมแบบอักษร, การเติมสี, เส้นขอบ, รูปแบบตัวเลข, และการจัดแนว. ดึงสไตล์ปัจจุบันด้วย Cell.GetStyle(), แก้ไขมัน, แล้วบันทึกด้วย Cell.SetStyle(). สำหรับการเติมพื้นหลัง, ตั้งค่า Style.Pattern = FillPattern.Solid และกำหนด Color ให้กับ Style.ForegroundColor. ใช้ Cells.Merge() เพื่อขยายช่วงเซลล์.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var cell = workbook.Worksheets[0].Cells["A1"];
cell.PutValue("Styled");
var style = cell.GetStyle();
style.Font.Bold = true;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 241, 196, 15);
cell.SetStyle(style);
Console.WriteLine($"{cell.StringValue} / Bold={cell.GetStyle().Font.Bold}");
การจัดรูปแบบตามเงื่อนไข
แนบกฎการจัดรูปแบบตามเงื่อนไขไปยังช่วงเซลล์ผ่าน ConditionalFormattingCollection. กฎเหล่านี้รองรับ FormatConditionType.CellValue, Expression, ColorScale, DataBar และ IconSet. ใช้ OperatorType เพื่อระบุตัวดำเนินการเปรียบเทียบ (Between, Equal, GreaterThan เป็นต้น), กำหนด Style ให้กับเซลล์ที่ตรงกัน, และกำหนดลำดับความสำคัญและพฤติกรรมหยุดเม็ตจริง (stop-if-true) สำหรับแต่ละกฎ.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
var cfCollection = sheet.ConditionalFormattings[sheet.ConditionalFormattings.Add()];
cfCollection.AddArea(CellArea.CreateCellArea("A1", "A10"));
var rule = cfCollection[cfCollection.AddCondition(
FormatConditionType.CellValue, OperatorType.Between, "3", "7")];
var style = rule.Style;
style.Pattern = FillPattern.Solid;
style.ForegroundColor = Color.FromArgb(255, 255, 199, 206);
style.Font.Bold = true;
rule.Style = style;
workbook.Save("conditional-formatting.xlsx");
การตรวจสอบข้อมูล
เพิ่มข้อจำกัดการป้อนข้อมูลให้กับเซลล์โดยใช้ Worksheet.Validations. ประเภทการตรวจสอบที่รองรับรวมถึง ValidationType.List, Decimal, Custom และอื่น ๆ. ตั้งค่าข้อความแนะนำการป้อนข้อมูล (InputTitle, InputMessage) และข้อความข้อผิดพลาด (ErrorTitle, ErrorMessage, ValidationAlertType). ใช้ CellArea.CreateCellArea() เพื่อกำหนดช่วงที่ตรวจสอบและ Validation.AddArea() เพื่อใช้กฎกับช่วงเพิ่มเติม.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Name = "Validation Sheet";
var listIdx = sheet.Validations.Add(CellArea.CreateCellArea("A1", "A3"));
var listVal = sheet.Validations[listIdx];
listVal.Type = ValidationType.List;
listVal.Formula1 = "\"Open,Closed\"";
listVal.IgnoreBlank = true;
listVal.InCellDropDown = true;
listVal.ShowInput = true;
listVal.InputTitle = "Status";
listVal.InputMessage = "Pick a status";
listVal.ShowError = true;
listVal.ErrorTitle = "Invalid";
listVal.ErrorMessage = "Choose from the list";
workbook.Save("validations-sample.xlsx");
การตั้งค่าหน้าและตัวเลือกการพิมพ์
กำหนดค่าเลย์เอาต์การพิมพ์ผ่าน Worksheet.PageSetup. ตั้งค่าขอบกระดาษ (LeftMarginInch, RightMarginInch, TopMarginInch, BottomMarginInch), Orientation, PaperSize, สเกล, พื้นที่พิมพ์, แถวและคอลัมน์หัวเรื่อง, ส่วนหัวและส่วนท้าย, และการแยกหน้า. การตั้งค่าทั้งหมดจะคงอยู่เมื่อบันทึกและโหลดใหม่.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Name = "Print Sheet";
sheet.Cells["A1"].PutValue("Title");
var pageSetup = sheet.PageSetup;
pageSetup.Orientation = PageOrientationType.Landscape;
pageSetup.PaperSize = PaperSizeType.PaperA4;
pageSetup.PrintArea = "$A$1:$C$10";
pageSetup.PrintTitleRows = "$1:$2";
pageSetup.LeftHeader = "Left Header";
pageSetup.CenterFooter = "Center Footer";
pageSetup.PrintGridlines = true;
pageSetup.CenterHorizontally = true;
workbook.Save("page-setup-sample.xlsx");
การตั้งค่าแผ่นงานและการป้องกัน
ควบคุมการแสดงผลต่อแผ่นงานด้วย Worksheet.ShowGridlines, ShowRowColumnHeaders, ShowZeros, RightToLeft, Zoom และ TabColor. ปกป้องแผ่นงานด้วย Worksheet.Protect() และกำหนดค่าสถานะ Protection รายละเอียด (Objects, FormatCells, InsertRows, AutoFilter, SelectLockedCells). จัดการความสูงของแถว, ความกว้างของคอลัมน์, แถว/คอลัมน์ที่ซ่อน, และพื้นที่ที่รวมกันผ่าน Cells.Rows, Cells.Columns และ Cells.Merge().
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var layout = workbook.Worksheets[0];
layout.Name = "Layout";
layout.VisibilityType = VisibilityType.Hidden;
layout.TabColor = Color.FromArgb(255, 34, 68, 102);
layout.ShowGridlines = false;
layout.Zoom = 85;
layout.Protect();
layout.Protection.FormatCells = true;
layout.Protection.InsertRows = true;
layout.Cells["A1"].PutValue("Merged");
layout.Cells.Rows[1].Height = 22.5d;
layout.Cells.Columns[0].Width = 18.25d;
layout.Cells.Merge(0, 0, 2, 2);
workbook.Save("worksheet-settings-sample.xlsx");
ไฮเปอร์ลิงก์และช่วงที่ตั้งชื่อ
เพิ่มไฮเปอร์ลิงก์ภายนอก, ภายใน, และ mailto: ผ่าน HyperlinkCollection.Add(). ตั้งค่า Hyperlink.TextToDisplay และ Hyperlink.ScreenTip สำหรับป้ายชื่อที่ผู้ใช้มองเห็น. กำหนดช่วงที่ตั้งชื่อในระดับเวิร์กบุ๊กหรือแผ่นงานโดยใช้ DefinedNameCollection.Add() — ช่วงที่ตั้งชื่อทำหน้าที่เป็นจุดยึดสูตรที่คงที่และเป็นแหล่งข้อมูลกราฟิกที่คงอยู่เมื่อตัวไฟล์โหลดใหม่.
using Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Docs");
var link = sheet.Hyperlinks[sheet.Hyperlinks.Add("A1", 1, 1, "https://example.com/docs")];
link.TextToDisplay = "Docs";
link.ScreenTip = "External documentation";
var name = workbook.DefinedNames[workbook.DefinedNames.Add("PrimaryRange", "='Sheet1'!$A$1:$D$5")];
name.Comment = "Primary data range";
workbook.Save("hyperlinks-names.xlsx");
Console.WriteLine("Hyperlinks: " + sheet.Hyperlinks.Count);
Console.WriteLine("Defined names: " + workbook.DefinedNames.Count);
เริ่มต้นอย่างรวดเร็ว
dotnet add package Aspose.Cells.FOSSusing Aspose.Cells_FOSS;
var workbook = new Workbook();
var sheet = workbook.Worksheets[0];
sheet.Cells["A1"].PutValue("Hello");
sheet.Cells["B1"].PutValue(123);
sheet.Cells["C1"].Formula = "=B1*2";
workbook.Save("output.xlsx");
รูปแบบที่รองรับ
| รูปแบบ | ส่วนขยาย | อ่าน | เขียน |
|---|---|---|---|
| Xlsx | .xlsx | ✓ | ✓ |
| Auto | (หลายประเภท) | ✓ | — |
โอเพ่นซอร์สและการให้สิทธิ์
Aspose.Cells FOSS สำหรับ .NET ถูกเผยแพร่ภายใต้ใบอนุญาต MIT และจัดจำหน่ายผ่าน NuGet ในรูปแบบ Aspose.Cells_FOSS. มันเหมาะสำหรับโครงการโอเพ่นซอร์สและเชิงพาณิชย์เช่นกัน.