ספריית קוד פתוח .NET למניפולציה בגיליונות אלקטרוניים של Excel
ClosedXML מאפשר לך לקרוא, לתפעל ולכתוב מסמכי Microsoft Excel
ClosedXML הוא קוד פתוח C# API לקריאה, מניפולציה וכתיבה של מסמכי Microsoft Excel 2007+ (.xlsx, .xlsm). ה-API מאפשר לך ליצור קבצי Excel מבלי להשתמש באפליקציית Excel, ולקרוא קבצים באמצעות התכונות המשופרות.
באמצעות ה-API תוכל לעצב את חוברות העבודה שלך על ידי שימוש בצבעי רקע ותוחמות תאים. אתה יכול להוסיף, להסיר ולהזיז את גליונות העבודה שלך ולנהל סוגי נתונים בתוך Excel.
תחילת העבודה עם ClosedXML
הדרך המומלצת להתקין ClosedXML היא מ-NuGet, אנא השתמש בפקודה הבאה להתקנה מהירה יותר.
התקן ClosedXML מ-NuGet
Install-Package ClosedXML
צור חוברות עבודה חדשות בחינם באמצעות C#
CLosedXML מאפשרת מפתחי C.NET ליצור גליונות עבודה חדשים. ניתן ליצור חוברת בישול ריקה באמצעות שיטת XLWorkbook. הספרייה כללה מספר תכונות חשובות לניהול מסמכי גליון העבודה שלך. זה מאפשר להוסיף גליונות עבודה בחוברת הבישול שלך, להוסיף תאים ועמודות, להחיל סגנונות על שורות ועמודות, למחוק את התאים הלא רצויים ורבים נוספים.
יצירת ספרי בישול חדשים באמצעות .NET API
using (var workbook = new XLWorkbook())
{
var worksheet = workbook.Worksheets.Add("Sample Sheet");
worksheet.Cell("A1").Value = "Hello World!";
worksheet.Cell("A2").FormulaA1 = "=MID(A1, 7, 5)";
workbook.SaveAs("HelloWorld.xlsx");
}
סגנון גיליונות Excel באמצעות C#
הקוד הפתוח ClosedXML API מאפשר למפתחי תוכנה ליישם סגנונות בגיליונות אקסל שלהם עם רק כמה שורות של קוד C. API מועשר עם תכונות סטיילינג כולל יישור, גבול, מילוי, גופן, פורמט מספר, שורות עיצוב, עמודות ועוד. הספרייה מאפשרת גם למשתמשים לשנות את הסגנון בהתאם לצרכים שלהם.
כיצד להחיל סגנונות עבור גיליונות Excel דרך C הספרייה
var path = Program.BaseCreatedDirectory;
new StyleFont().Create(Path.Combine(path, "styleFont.xlsx"));
new StyleFill().Create(Path.Combine(path, "styleFill.xlsx"));
new StyleBorder().Create(Path.Combine(path, "styleBorder.xlsx"));
new StyleAlignment().Create(Path.Combine(path, "styleAlignment.xlsx"));
new StyleNumberFormat().Create(Path.Combine(path, "styleNumberFormat.xlsx"));
new StyleIncludeQuotePrefix().Create(Path.Combine(path, "styleIncludeQuotePrefix.xlsx"));
שימוש במסננים אוטומטיים באקסל באמצעות C#
ספריית ClosedXML כללה תמיכה מלאה ביישום מסננים בגליונות העבודה שלך. הספרייה כללה סוגים שונים של מסננים לנוחיות המשתמש. אתה יכול ליישם את המסנן לטווח מסוים, להחיל מסנן לערכים וליצור מסננים מותאמים אישית שלך גם כן.
כיצד להחיל מסננים אוטומטיים ב- Excel באמצעות C
public class DynamicAutoFilter : IXLExample
{
public void Create(string filePath)
{
var wb = new XLWorkbook();
IXLWorksheet ws;
#region Single Column Numbers
String singleColumnNumbers = "Single Column Numbers";
ws = wb.Worksheets.Add(singleColumnNumbers);
// Add a bunch of numbers to filter
ws.Cell("A1").SetValue("Numbers")
.CellBelow().SetValue(2)
.CellBelow().SetValue(3)
.CellBelow().SetValue(3)
.CellBelow().SetValue(5)
.CellBelow().SetValue(1)
.CellBelow().SetValue(4);
// Add filters
ws.RangeUsed().SetAutoFilter().Column(1).AboveAverage();
// Sort the filtered list
//ws.AutoFilter.Sort(1);
#endregion
#region Multi Column
String multiColumn = "Multi Column";
ws = wb.Worksheets.Add(multiColumn);
ws.Cell("A1").SetValue("First")
.CellBelow().SetValue("B")
.CellBelow().SetValue("C")
.CellBelow().SetValue("C")
.CellBelow().SetValue("E")
.CellBelow().SetValue("A")
.CellBelow().SetValue("D");
ws.Cell("B1").SetValue("Numbers")
.CellBelow().SetValue(2)
.CellBelow().SetValue(3)
.CellBelow().SetValue(3)
.CellBelow().SetValue(5)
.CellBelow().SetValue(1)
.CellBelow().SetValue(4);
ws.Cell("C1").SetValue("Strings")
.CellBelow().SetValue("B")
.CellBelow().SetValue("C")
.CellBelow().SetValue("C")
.CellBelow().SetValue("E")
.CellBelow().SetValue("A")
.CellBelow().SetValue("D");
// Add filters
ws.RangeUsed().SetAutoFilter().Column(2).BelowAverage();
// Sort the filtered list
//ws.AutoFilter.Sort(3);
#endregion
using (var ms = new MemoryStream())
{
wb.SaveAs(ms);
var workbook = new XLWorkbook(ms);
#region Single Column Numbers
//workbook.Worksheet(singleColumnNumbers).AutoFilter.Sort(1, XLSortOrder.Descending);
#endregion
#region Multi Column
//workbook.Worksheet(multiColumn).AutoFilter.Sort(3, XLSortOrder.Descending);
#endregion
workbook.SaveAs(filePath);
ms.Close();
}
}
}