كيفية تحميل ورقة التردد في .NET
Aspose.Cells FOSS for .NET lets you open existing XLSX spreadsheets with a single constructor call and provides a fault-tolerant loading path for files that have minor structural corruption. Install the library from NuGet with dotnet add package Aspose.Cells_FOSS.
خطوة بخطوة دليل
الخطوة 1: قم بتثبيت الحزمة
dotnet add package Aspose.Cells_FOSSتحقق من وجود الحزمة:
dotnet list package | grep Aspose.Cells_FOSSالخطوة 2: استيراد اسم الفضاء
إضافة هذه المبادئ التوجيهية في الجزء العلوي من ملف C# الخاص بك:
using Aspose.Cells_FOSS;الخطوة 3: تحميل ملف XLSX
قم بتحويل مسار الملف إلى Workbook يقرأ المكتبة ملف XLSX ويضع في الذاكرة كائن الكتب.
using Aspose.Cells_FOSS;
var wb = new Workbook("data.xlsx");
Console.WriteLine("Loaded " + wb.Worksheets.Count + " sheet(s)");
Console.WriteLine("First sheet: " + wb.Worksheets[0].Name);
Console.WriteLine("A1 value: " + wb.Worksheets[0].Cells["A1"].StringValue);الخطوة 4: تحميل مع خيارات إصلاح التسامح عن الأخطاء
بالنسبة للملفات التي قد تكون لها فساد ZIP أو XML ، قم بتقديم LoadOptions الموضوع مع TryRepairPackage و TryRepairXml إعداد إلى true.- إدخال المكالمة في A try/catch من أجل WorkbookLoadException إذا كان الملف غير قابل للاسترداد.
using Aspose.Cells_FOSS;
var opts = new LoadOptions
{
TryRepairPackage = true,
TryRepairXml = true,
};
try
{
var wb = new Workbook("possibly-corrupt.xlsx", opts);
Console.WriteLine("Loaded successfully");
}
catch (WorkbookLoadException ex)
{
Console.WriteLine("Unrecoverable file: " + ex.Message);
}الخطوة الخامسة: تحقق من تشخيص الحمل
بعد التحميل، فحص Workbook.LoadDiagnostics لمعرفة ما إذا كانت المكتبة قد قامت بتنفيذ أي إصلاحات. HasRepairs هو true إذا تم إجراء أي إصلاح؛; HasDataLossRisk هو true إذا تم إلغاء البيانات.إيتريت Issues الوصول الفردي DiagnosticEntry سجلات .
using Aspose.Cells_FOSS;
var opts = new LoadOptions { TryRepairPackage = true, TryRepairXml = true };
var wb = new Workbook("file.xlsx", opts);
var diag = wb.LoadDiagnostics;
if (diag.HasRepairs)
{
Console.WriteLine("Repairs were applied. Data loss risk: " + diag.HasDataLossRisk);
foreach (var entry in diag.Issues)
Console.WriteLine($" [{entry.Severity}] {entry.Code}: {entry.Message}");
}
else
{
Console.WriteLine("File loaded cleanly — no repairs.");
}الخطوة 6: الوصول إلى بيانات ورقة العمل
بعد تحميل، الوصول إلى ورقة العمل حسب المؤشر أو الاسم، وقراءة قيم الخلية باستخدام Cell.StringValue أو Cell.Value.
using Aspose.Cells_FOSS;
var wb = new Workbook("data.xlsx");
// By index
var sheet = wb.Worksheets[0];
Console.WriteLine("Sheet: " + sheet.Name);
Console.WriteLine("A1: " + sheet.Cells["A1"].StringValue);
// By name
var named = wb.Worksheets["Report"];
if (named != null)
Console.WriteLine("Report!B2: " + named.Cells["B2"].StringValue);مشكلات و تصحيحات مشتركة
WorkbookLoadException يتم إلقاء حتى مع خيارات الإصلاح المسموح بها. وهذا يعني أن بنية ZIP في الملف تضررت كثيراً لإصلاح الخوارزميات لاستردادها.تحقق من أن المجلد هو أرشيف Z IP صالح (على سبيل المثال، حاول unzip -t file.xlsxإذا كان الملف مكسورًا تمامًّا ، فلا يمكن فتحه من قبل أي مكتبة.
يحتوي الكتاب المكتوب على عدد أقل من الأوراق المتوقعة. قد يكون عمل إصلاح قد سقطت ورقة العمل التي ذكرت الأجزاء المفقودة. LoadDiagnostics.Issues من أجل الدخول مع DataLossRisk = true إبلاغ المستخدم.
القيم الخلوية فارغة بعد التحميل. تأكد من أنك تصل إلى مؤشر ورقة العمل الصحيح أو الاسم.استخدام wb.Worksheets.Count تأكد من عدد الأوراق المتوقعة.أرجو أيضا أن تتحقق من أن ملف XNUMX غير محمي بالكلمة المرور (لا يتم دعم الملفات المحمية بالكلمات المرورية حاليا).
Workbook يرتبط البناء على ملف كبير. يبدو أن المكون متزامنًا ويحمل الملف بأكمله إلى الذاكرة.للملفات الكبيرة جدًّا ، قم بتشغيل الحمل على شريط خلفي للحفاظ على استجابة واجهة الاتصال.
DiagnosticEntry.Severity عرض Error ولكن HasRepairs هو false. HasRepairs يظهر ما إذا كانت إصلاحات تم تنفيذها بنجاح، وليس ما لو تم الكشف عن الأخطاء. Error- الدخول إلى أمان مع RepairApplied = false يعني أن المشكلة تم اكتشافها ولكن لم تتمكن من إصلاحها - تعامل مع ذلك كتحذير محتمل لسلامة البيانات.
الأسئلة المتكررة
هل يمكنني تحميل ملف XLSX من تدفق بدلاً من مسار الملف؟?
نعم، أليس كذلك؟ Workbook المبدع لديه تحميل متفرق الذي يقبل Stream المكان: اجتياز تدفقك إلى جانب A LoadOptions على سبيل المثال، إذا كان هناك حاجة إلى التحميل المضاد للخطأ.
هل يدعم المكتبة تحميل ملفات XLSX المحمية كلمة مرور؟?
الملفات المحمية كلمة المرور ليست في سطح API الحالي.محاولة تحميل واحد سوف يؤدي إلى WorkbookLoadException.
كيف يمكنني التحقق من أي ورقة نشطة في دفتر العمل المشتري؟?
قراءة Workbook.Worksheets.ActiveSheetName للحصول على اسم الورقة التي كانت نشطة أخيرًا عندما تم حفظ الملف.
هل يمكنني تحميل ملفات XLSX المتعددة في وقت واحد؟?
نعم، كل واحد منهم Workbook يمكن أن يكون الاستثناء مستقلًا ، يمكنك إدراج العديد من Workbook الكائنات على أسلاك منفصلة دون دولة مشتركة.
ماذا يحدث إذا تم تحميل خلية صيغة والنتائج المضغوطة غائبة؟?
Cell.StringValue يعود سلك فارغ. Cell.Formula لا يزال يعيد شريط الصيغة.القيمة المنسوجة يتم استيعابها إلا عندما يفتح Excel (أو تطبيق متوافق) ويحفظ الملف.