บทนำ
Aspose.Cells FOSS for .NET เป็นไลบรารีที่เขียนด้วยโค้ดจัดการแบบบริสุทธิ์, มีใบอนุญาต MIT, สำหรับการอ่าน, เขียน,
และจัดการเวิร์กบุ๊ก Excel .xlsx โดยไม่ต้องพึ่งพา Microsoft Office ใดๆ. ติดตั้งเป็น
แพ็กเกจ NuGet Aspose.Cells_FOSS, มันจะรวมเข้ากับโครงการ .NET ใดๆ — แอปคอนโซล, API เว็บ,
งานเบื้องหลัง, และฟังก์ชันแบบไม่มีเซิร์ฟเวอร์.
โพสต์นี้ให้การเดินผ่านคุณลักษณะต่อคุณลักษณะของ API สาธารณะ แสดงให้เห็นว่าอะไรเป็นไปได้และวิธีเรียกใช้แต่ละความสามารถจากโค้ด C#.
ภาพรวมของฟีเจอร์
วงจรชีวิตของ Workbook และ Worksheet
จุดเริ่มต้นสำหรับการดำเนินการทุกอย่างคือคลาส 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() — การโอเวอร์โหลดรับค่า 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_FOSS
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("output.xlsx");
รูปแบบที่รองรับ
| รูปแบบ | ส่วนขยาย | อ่าน | เขียน |
|---|---|---|---|
| Xlsx | .xlsx | ✓ | ✓ |
| อัตโนมัติ | (หลายรูปแบบ) | ✓ | — |
โอเพนซอร์สและการให้สิทธิ์
Aspose.Cells FOSS for .NET ถูกเผยแพร่ภายใต้สัญญาอนุญาต MIT และจัดจำหน่ายผ่าน NuGet เป็น
Aspose.Cells_FOSS. มันเหมาะสำหรับโครงการโอเพนซอร์สและเชิงพาณิชย์เช่นกัน.