العمل مع OOXML التعبئة والتغليف

العمل مع OOXML التعبئة والتغليف

العمل مع OOXML التعبئة والتغليف

ملف XLSX هو ملفات Open Packaging Convention (OPC) ZIP. Aspose.Cells FOSS for .NET يعرض الطبقة الخزينة الأساسية من خلال IPackageReader, IPackageWriter,و و هو PackageModel هذه هي APIs منخفضة المستوى المخصصة للتشخيص والأدوات - معظم التطبيقات تستخدم فقط المستويات العالية Workbook فئة .


نموذج الحزمة

PackageModel يمثل المحتوى المنطقي لأرشيف XLSX. يظهر ثلاثة مجموعات: Parts (كل قطعة من المحتوى), Relationships (مشاركة العلاقات بين OPC) ، و UnsupportedParts (الأجزاء الموجودة في الملف الذي لا يعالجها المكتبة).كل جزء يصف بواسطة PackagePartDescriptor مع PartUri, ContentType,و ، و Category.

using Aspose.Cells_FOSS;

// PackageModel is accessed via PackageLoadContext during custom load flows
// The following illustrates the object structure
// var context = new PackageLoadContext(workbook, packageModel);
// var model = context.Package;
// foreach (var part in model.Parts)
// {
//     Console.WriteLine($"URI={part.PartUri}, Type={part.ContentType}");
// }
// Console.WriteLine("Unsupported parts: " + model.UnsupportedParts.Count);

ملاحظة: PackageModel يتم تسجيل الدخول داخلية عند تحميل ملف XLSX. لا تشكل التحكم المباشر جزءًا من تدفق العمل عالي المستوى القياسي.


IPackageReader و IPACKAGEWriter

IPackageReader تعريف واحد Read() طريقة قراءة حزمة OPC. IPackageWriter تعريف واحد Write() هذه الواجهات يتم تنفيذها من قبل القارئ / الكاتب على أساس ZIP الداخلي للمكتبة ويمكن توفيرها بواسطة التطبيقات المخصصة لسيناريوهات التخزين في الذاكرة أو السحابة.

// Signature reference — not a complete runnable example
// public interface IPackageReader { void Read(...); }
// public interface IPackageWriter { void Write(...); }

PackageStructureException

PackageStructureException يتم إلقاءها عندما تكون بنية حزمة XLSX غير صالحة بشكل أساسي - على سبيل المثال ، عندما تفتقر العلاقات المطلوبة مع OPC. يمتد الهرم الاستثنائي العام ويحمل رسالة تصف أي اختلال الهيكلي قد انتهكت.

using Aspose.Cells_FOSS;

var opts = new LoadOptions { TryRepairPackage = true };

try
{
    var wb = new Workbook("bad.xlsx", opts);
}
catch (PackageStructureException ex)
{
    Console.WriteLine("OPC structure error: " + ex.Message);
}
catch (WorkbookLoadException ex)
{
    Console.WriteLine("Load error: " + ex.Message);
}

نصائح وأفضل الممارسات

  • استخدام PackageModel.UnsupportedParts اكتشاف أجزاء غير قياسية يمكن أن تكون هادئة على الطريق المستدير.
  • القبض PackageStructureException وبالإضافة إلى WorkbookLoadException عند تحميل الملفات من مصادر غير موثوق بها.
  • وَالْمُتَّقِينَ IPackageReader/IPackageWriter واجهات هي نقاط التمديد؛ لا تنفذها إلا عندما تحتاج إلى تخزين مخصص (على سبيل المثال، تحميل من مجلد سحابي دون ملف محلي).
  • ومعظم المشاكل التشخيصية،, LoadDiagnostics (متاحة من خلال Workbook.LoadDiagnostics) كافية - نادرا ما يكون من الضروري الانزلاق إلى طبقة الحزمة.

القضايا المشتركة

مسألةسببتصحيح
PackageStructureException على تحميلالعلاقة بين أوبك المفقودةمجموعة TryRepairPackage = true في LoadOptions;· التحقق LoadDiagnostics.Issues بعد تحميل
UnsupportedParts لا فارغةملف يحتوي على إضافات غير قياسيةهذه الأجزاء محمية في الحفظ إذا كانت موجودة عند التحميل.
Custom IPackageReader لا يُدعىانتقل إلى المعدن الخاطئتأكد من أن LoadOptions أو التحميل المفرط المستخدم الذي يقبل القارئ المخصص

FAQ

هل أحتاج إلى استخدام IPackageReader/IPackagesWriter للعمل العادي في ورقة الشاشة؟?

لا هذه الواجهات هي نقاط التمديد للمشاهد المتقدمة.تتم جميع عمليات القراءة/الكتابة القياسية من خلال Workbook مباشرة .

هل يتم حفظ الأجزاء غير المساعدة؟?

الأجزاء المذكورة في PackageModel.UnsupportedParts لا يتم معالجة ولا يمكن إعادة كتابة.إذا كانت الإخلاص الدائري للأجزاء غير القياسية مطلوبة، استخدم خطوة ما بعد المعالجات على مستوى zip.

ما الفرق بين PackageStructureException و WorkbookLoadExcept؟?

PackageStructureException يشير إلى فشل على مستوى OPC / ZIP (فقدان نوع المحتوى ، العلاقة المكسورة). WorkbookLoadException يشير إلى نجاح أعلى مستوى أو فشل شيماتي في محتوى XLSX.


إشارة API

الفئة / الوسائطوصف
IPackageReaderقراءة مقطع فيديو (Read طريقة )
IPackageWriter- إعداد برنامج التداول (Write طريقة )
PackageLoadContextيربط A Workbook إلى أن ي PackageModel
PackageLoadContext.Packageيعود إلى PackageModel
PackageModel.Partsجميع أجزاء المحتوى في الحزمة
PackageModel.Relationshipsإدخال العلاقات OPC
PackageModel.UnsupportedPartsالأجزاء غير المعالجة من قبل المكتبة
PackagePartDescriptor.PartUriأوبك يوري للجزء
PackagePartDescriptor.ContentTypeنوع المحتوى MIME من الجزء
PackagePartDescriptor.Categoryالفئة المنطقية (الرسوم العملية، الأنماط، الخ)
PackageStructureExceptionتراجع في الاعتبار انتهاكات الهيكلية لـ OPC
 العربية