Ενεργοποίηση με το OOXML Packaging
Ενεργοποίηση με το OOXML Packaging
Ένα αρχείο XLSX είναι ένα αρχεία Open Packaging Convention (OPC) ZIP. Aspose.Cells FOSS για .NET εκθέτει το υποκείμενο στρώμα πακέτου μέσω του IPackageReader, IPackageWriter,Και η PackageModel Αυτά είναι χαμηλού επιπέδου APIs που προορίζονται για διάγνωση και εργαλείο - οι περισσότερες εφαρμογές χρησιμοποιούν μόνο το υψηλό επίπεδο. Workbook Τάξη .
Μοντέλο πακέτου
PackageModel αντιπροσωπεύει το λογικό περιεχόμενο ενός αρχείου XLSX. Εκθέτει τρεις συλλογές: Parts (Όλα τα περιεχόμενα του κειμένου), Relationships (Συμβάσεις για τις σχέσεις του ΟΠΚ) και 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Η απευθείας εγκατάσταση δεν αποτελεί μέρος της τυποποιημένης ροής εργασίας υψηλού επιπέδου.
IPackageReader και IPacketWriter
IPackageReader Ορισμός ενός μοναδικού Read() Μέθοδος ανάγνωσης ενός πακέτου OPC. IPackageWriter Ορισμός ενός μοναδικού Write() Αυτές οι διεπαφές εφαρμόζονται από τον εσωτερικό αναγνώστη/εγγραφέα βάσει ZIP της βιβλιοθήκης και μπορούν να παρέχονται με προσαρμοσμένες εφαρμογές για σενάρια αποθήκευσης στο μνήμη ή το cloud.
// 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Οι διεπαφές είναι σημεία επέκτασης και εφαρμόζονται μόνο όταν χρειάζεστε προσαρμοσμένη αποθήκευση (π.χ. φόρτιση από ένα cloud blob χωρίς τοπικό αρχείο). - Για τις περισσότερες διαγνωστικές,
LoadDiagnostics(Από την πρόσβαση μέσωWorkbook.LoadDiagnostics) είναι αρκετό - η πτώση στο στρώμα πακέτου σπάνια απαιτείται.
κοινά ζητήματα
| Θέμα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
PackageStructureException ΣΤΟ ΛΟΙΓ | Απαλλαγή της σχέσης OPC | ΣΕΤΙΔΑ TryRepairPackage = true Σε LoadOptions;· Ελέγξτε LoadDiagnostics.Issues Μετά το φορτίο |
UnsupportedParts Δεν είναι κενό | Το αρχείο περιέχει μη τυποποιημένες επέκταση | Τα μέρη αυτά διατηρούνται verbatim στο αποθηκευτικό, εάν ήταν παρόντα σε φορτίο. |
Καθορισμός IPackageReader Δεν καλείται | Επεξεργασία του λάθος κατασκευαστή | Να εξασφαλιστεί η LoadOptions ή υπερφόρτωση κατασκευαστή αποδέχοντας το προσαρμοσμένο αναγνώστη χρησιμοποιείται |
FAQ
Χρειάζεται να χρησιμοποιήσω το IPackageReader/IPackagesWriter για κανονική εργασία με διακοσμητικό φύλλο;?
Όχι. αυτές οι διεπαφές είναι σημεία επέκτασης για προηγμένα σενάρια. όλες οι τυποποιημένες λειτουργίες ανάγνωσης/εγγραφής περνούν από Workbook απευθείας .
Τα μη υποστηριζόμενα μέρη διατηρούνται σε αποθήκευση;?
Μέρη που αναφέρονται σε PackageModel.UnsupportedParts Δεν επεξεργάζονται και δεν μπορούν να γραφθούν πίσω. Εάν απαιτείται η πιστότητα περιστροφής για μη τυποποιημένα μέρη, χρησιμοποιήστε ένα στάδιο μετά την επεξαγωγή σε επίπεδο zip.
Ποια είναι η διαφορά μεταξύ PackageStructureException και WorkbookLoadExcept;?
PackageStructureException υποδεικνύει αποτυχία σε επίπεδο OPC/ZIP (απόσπαση τύπου περιεχομένου, σπάσιμο σχέσης). WorkbookLoadException υποδεικνύει ένα υψηλότερο επίπεδο σπασμού ή σεμάντικη αποτυχία στο περιεχόμενο XLSX.
Συνοπτική αναφορά API
| Επαφές / Interface | Περιγραφή |
|---|---|
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 |