עבודה עם OOXML אריזה

עבודה עם 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.PartUriOPC URI לצד זה
PackagePartDescriptor.ContentTypeסוג התוכן של החלק MIME
PackagePartDescriptor.Categoryקטגוריות לוגיות (עבודת עבודה, סגנונות וכו ‘)
PackageStructureExceptionהפרת אסטרטגיות של OPC

ראה גם

 עברית