حالات الاستخدام لـ Aspose.Cells FOSS لـ .NET
Aspose.Cells FOSS for .NET هي مكتبة .NET مُدارة بالكامل تقرأ وتكتب ملفات XLSX دون الحاجة إلى Microsoft Office أو أي تبعيات خارجية. توضح حالات الاستخدام التالية أين تتناسب المكتبة مع تطبيقات .NET الواقعية.
إنشاء التقرير
إنشاء تقارير XLSX برمجيًا في تطبيقات الخادم أو الدُفعات. استخدم Workbook، Worksheet، وCell.PutValue() لكتابة البيانات المهيكلة، ثم استدعِ Workbook.Save() لإنشاء الملف.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
ws.Name = "Monthly Report";
ws.Cells["A1"].PutValue("Product");
ws.Cells["B1"].PutValue("Revenue");
ws.Cells["A2"].PutValue("Widget A");
ws.Cells["B2"].PutValue(12500.00m);
ws.Cells["A3"].PutValue("Widget B");
ws.Cells["B3"].PutValue(8750.00m);
ws.Cells["B4"].Formula = "=SUM(B2:B3)";
wb.Save("monthly-report.xlsx");يمكن لهذا النمط أن يتوسع إلى أي عدد من الصفوف ويمكن أن يُستمد من البيانات من قاعدة بيانات أو استجابة API.
معالجة جداول البيانات التي تم تحميلها
قراءة والتحقق من ملفات XLSX التي يرسلها المستخدمون عبر نموذج ويب أو نقطة نهاية API. مُنشئ Workbook يقبل Stream، لذا لا يلزم كتابة ملف مؤقت على القرص.
using Aspose.Cells_FOSS;
// IFormFile from ASP.NET Core controller
public async Task<IActionResult> Upload(IFormFile file)
{
using var stream = file.OpenReadStream();
var opts = new LoadOptions { TryRepairPackage = true };
var wb = new Workbook(stream, opts);
var ws = wb.Worksheets[0];
var firstRow = ws.Cells["A1"].StringValue;
// ... validate and process rows
return Ok(new { sheets = wb.Worksheets.Count, firstCell = firstRow });
}استخدم LoadDiagnostics.HasRepairs لاكتشاف الملفات التي تحتاج إلى إصلاح هيكلي وعرض تلك المعلومات للمستخدمين.
استخراج خط أنابيب البيانات
استخراج بيانات الخلايا من تصديرات XLSX التي تنتجها الأنظمة التابعة لأطراف ثالثة وإدخال القيم في قاعدة بيانات أو خدمة لاحقة. قراءة قيم الخلايا عبر Cell.StringValue وCell.Value باستخدام إحداثيات الصف والعمود.
using Aspose.Cells_FOSS;
var wb = new Workbook("export.xlsx");
var ws = wb.Worksheets[0];
var records = new List<(string sku, double qty)>();
for (int row = 1; row <= 100; row++) // iterate known data range
{
var sku = ws.Cells[row, 0].StringValue;
if (string.IsNullOrEmpty(sku)) break;
var qty = (double)ws.Cells[row, 1].Value;
records.Add((sku, qty));
}
Console.WriteLine($"Extracted {records.Count} records");تطبيق التحقق من صحة البيانات قبل الحفظ
أضف قواعد التحقق من القوائم المنسدلة أو النطاق قبل تسليم قالب XLSX للمستخدمين النهائيين، لضمان ملئهم القيم المقبولة فقط.
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
// Status column: dropdown
var statusVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("A2", "A100"))];
statusVal.Type = ValidationType.List;
statusVal.Formula1 = "\"Open,In Progress,Closed\"";
statusVal.InCellDropDown = true;
// Score column: 0–10 decimal range
var scoreVal = ws.Validations[ws.Validations.Add(CellArea.CreateCellArea("B2", "B100"))];
scoreVal.Type = ValidationType.Decimal;
scoreVal.Operator = OperatorType.Between;
scoreVal.Formula1 = "0";
scoreVal.Formula2 = "10";
scoreVal.ShowError = true;
wb.Save("template-with-validation.xlsx");تنسيق الإخراج للقراءة السهلة
تطبيق أنماط الخلايا — الخطوط، ألوان التعبئة، تنسيقات الأرقام، الحدود — لإنتاج مخرجات مصقولة. أنشئ كائن Style مباشرةً، واضبط خصائصه، وطبقه باستخدام Cell.SetStyle().
using Aspose.Cells_FOSS;
var wb = new Workbook();
var ws = wb.Worksheets[0];
// Header style
var headerStyle = new Style();
headerStyle.Font.IsBold = true;
headerStyle.Font.Size = 12;
headerStyle.ForegroundColor = System.Drawing.Color.FromArgb(0x4F, 0x81, 0xBD);
headerStyle.Pattern = FillPattern.Solid;
ws.Cells["A1"].PutValue("Name");
ws.Cells["B1"].PutValue("Score");
ws.Cells["A1"].SetStyle(headerStyle);
ws.Cells["B1"].SetStyle(headerStyle);
// Number format for score column
var numStyle = new Style();
numStyle.Custom = "0.00";
ws.Cells["B2"].SetStyle(numStyle);
ws.Cells["B2"].PutValue(98.5m);
wb.Save("styled-report.xlsx");