עבודה עם OOXML אריזה
עבודה עם OOXML אריזה
קובץ XLSX הוא ארכיון ZIP של Open Packaging Convention (OPC). Aspose.Cells FOSS for .NET מציג את שכבת החבילה הבסיסית דרך IPackageReader, IPackageWriter,ועם זאת, The 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 ו-IPackagesWriter
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כדי לגלות חלקים לא סטנדרטיים שעלולים להיות נופלים בשקט על מסלול סיבוב. - Catch
PackageStructureExceptionבנוסף לWorkbookLoadExceptionכאשר אתה מחזיק את הקבצים ממקורות לא מאובטחים. - The
IPackageReader/IPackageWriterממשקים הם נקודות הרחבה; ליישם אותם רק כאשר אתה צריך אחסון מותאם אישית (לדוגמה, העלאת מענן בלוב ללא קובץ מקומי). - עבור רוב האבחנות,
LoadDiagnostics(הוא זמין דרךWorkbook.LoadDiagnosticsזה מספיק - נופל על שכבת החבילה הוא נדיר הכרחי.
בעיות נפוצות
| נושא | סיבה | קבע |
|---|---|---|
PackageStructureException על הלחץ | יחסי OPC נעדרים | סדנה TryRepairPackage = true בתוך LoadOptions;• צ’ק LoadDiagnostics.Issues אחרי ההטעינה |
UnsupportedParts לא ריק | קובץ מכיל הרחבות שאינן סטנדרטיות | חלקים אלה נשמרים בביטוי על שמירה אם הם היו נוכחים באובדן. |
Custom IPackageReader לא הוזמנה | העברת על הטרדה שגויה של הבניין | להבטיח את LoadOptions או מחיקת יתר של יצרן מקבלת את הקורא המותאם אישית משתמשת |
FAQ
האם אני צריך להשתמש IPackageReader/IPackagesWriter לעבודה רגילה?
לא. ממשקים אלה הם נקודות הרחבה עבור סנריונים מתקדמים.כל פעולות קריאה/כתיבה סטנדרטיות עוברות דרך Workbook ישירות .
האם חלקים שאינם נתמכים נשמרים?
חלקים שנרשמו ב PackageModel.UnsupportedParts אם נדרשת סדירות סיבוב עבור חלקים שאינם סטנדרטיים, השתמשו בשלב לאחר עיבוד ברמה ZIP.
מה ההבדל בין PackageStructureException ו- WorkbookLoadExcept?
PackageStructureException מצביע על כישלון ברמת OPC/ZIP (יעדרו סוג תוכן, יחסים שבורים). WorkbookLoadException מצביע על פריסה ברמה גבוהה יותר או כישלון סמנטי בתוכן XLSX.
סיכום התייחסות API
| מפתח / Interface | תיאור |
|---|---|
IPackageReader | תגיות קשורות קריאה של חבילת OPC (Read שיטת ( |
IPackageWriter | תגיות קשורות כתיבת חבילת ה-OPC (Write שיטת ( |
PackageLoadContext | מחויב A Workbook על ידי שלה PackageModel |
PackageLoadContext.Package | חוזרים ל PackageModel |
PackageModel.Parts | כל החלקים בתוכן של החבילה |
PackageModel.Relationships | היחסים בין OPC |
PackageModel.UnsupportedParts | חלקים שאינם מעובדים על ידי הספרייה |
PackagePartDescriptor.PartUri | OPC URI לצד זה |
PackagePartDescriptor.ContentType | סוג התוכן של החלק MIME |
PackagePartDescriptor.Category | קטגוריות לוגיות (עבודת עבודה, סגנונות וכו ‘) |
PackageStructureException | הפרת אסטרטגיות של OPC |