Εργασία με την επεξεργασία XML
Εργασία με την επεξεργασία XML
Τα αρχεία XLSX αποθηκεύουν τα δεδομένα τους σε τμήματα XML εντός ενός πακέτου OPC. Aspose.Cells FOSS για .NET εκθέτει το στρώμα διαχωρισμού και σειριώσεως XML μέσα από τέσσερις κατηγορίες χαρτογράφων: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper,και StylesheetXmlMapper.Κάθε χαρτί εφαρμόζει και τα δύο. Read και Write Οι λειτουργίες για το αντίστοιχο τμήμα XML. Αυτές είναι οι εσωτερικές υποδομές APIs — ο κωδικός εφαρμογής λειτουργεί εντελώς μέσω της Workbook και Worksheet αντικειμένων .
XML Χάρτης Κλάσης
Κάθε φάκελος XML είναι υπεύθυνος για ένα μέρος του XLSX:
| Χάρτης | XML Μέρος | Υπεύθυνη |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Μεταδεδομένα επιπέδου εργαστηρίου, αναφορές φύλλων, ορισμένες ονομασίες |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Δεδομένα κελιών, φόρμουλα, υπερσυνδέσεις, τυποποιημένες μορφές, επικύρωση δεδομένων |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Κοινή πίνακα σιδήρου για τις διπλές τιμές σίδηρου |
StylesheetXmlMapper | xl/styles.xml | Στυλ κελιών, γραμματοσειρά, πληρώματα, οριακές διαστάσεις, μορφές αριθμού |
Κάθε χάρτης παρουσιάζει δύο μεθόδους - Read και Write — αναφέρονται από το φορτίο της βιβλιοθήκης και αποθηκεύουν τα σωλήνα αντίστοιχα.
XmlParsingException
XmlParsingException ρίχνει όταν ένα φάκελο συναντά κακότυπο XML που δεν μπορεί να διορθωθεί. WorkbookLoadException στην ιεραρχία σφάλματος όταν η αποτυχία συμβαίνει κατά τη διάρκεια του XML διαχωρισμού ειδικά.
using Aspose.Cells_FOSS;
var opts = new LoadOptions
{
TryRepairPackage = true,
TryRepairXml = true,
};
try
{
var wb = new Workbook("malformed.xlsx", opts);
Console.WriteLine("Loaded: " + wb.Worksheets.Count + " sheet(s)");
}
catch (XmlParsingException ex)
{
Console.WriteLine("XML parse error: " + ex.Message);
}
catch (WorkbookLoadException ex)
{
Console.WriteLine("Load error: " + ex.Message);
}Συμβουλές και βέλτιστες πρακτικές
- ΣΕΤΙΔΑ
TryRepairXml = trueΣεLoadOptionsνα επιτρέψει την ανοχή του χάρτη σε λάθη. - ΚΕΦΑΛΑΙΟ
XmlParsingExceptionΕκτός από τοWorkbookLoadExceptionόταν χειρίζονται αρχεία από εξωτερικά συστήματα που μπορεί να παράγουν κακότυπο XML. - Οι τάξεις χαρτογράφου XML δεν προορίζονται να εγκατασταθούν από τον κωδικό εφαρμογής - καλούνται αυτόματα κατά τη διάρκεια της περιόδου.
WorkbookΚατασκευή καιSave(). - Εάν χρειάζεται να ελέγξετε το βασικό περιεχόμενο XML για τη διάγνωση, αφαιρέστε το XLSX ως ZIP και εξετάστε τα σχετικά τμήματα του XML απευθείας.
κοινά ζητήματα
| Θέμα | Αιτία | ΦΙΛΕΞΗ |
|---|---|---|
XmlParsingException ΣΤΟ ΛΟΙΓ | Κακότυπο XML σε ένα από τα τμήματα XLSX | ΣΕΤΙΔΑ TryRepairXml = true Σε LoadOptions |
| Απεβίωτοι στυλ μετά το γύρο | StylesheetXmlMapper Δεν μπορεί να σπάσει ένα κανονικό αρχείο | Ελέγξτε LoadDiagnostics.Issues Για τις εισαγωγές επισκευής σχετικές με το στυλ |
| Μοιρασμένες γραμμές που λείπουν σε φορτισμένο αρχείο | SharedStringTableXmlMapper Βρέθηκε ένα διαφθορά κοινόχρηστο τραπέζι | Ενεργοποιεί TryRepairXml;• Ελέγξτε το αρχείο έχει έγκυρο xl/sharedStrings.xml |
FAQ
Μπορώ να εφαρμόσω το δικό μου χαρτί XML;?
Οι τάξεις χαρτογράφου XML είναι σφραγισμένες εσωτερικές υποδομές. Προσαρμοσμένα χάρτες δεν υποστηρίζονται στην τρέχουσα επιφάνεια API.
Γιατί υπάρχει μια ξεχωριστή SharedStringTableXmlMapper?
Η προδιαγραφή OOXML χωρίζει τις τιμές γραμμής σε ένα κοινό πίνακα γραμμάτων (xl/sharedStrings.xml2) για να αποδιπλασιάσει επαναλαμβανόμενες γραμμές σε όλο το βιβλίο εργασίας. Το φάκελο χειρίζεται την ανάγνωση και τη συγγραφή αυτού του πίνακα ανεξάρτητα.
Η ΚΕ TryRepairXml = true Εξέτασε όλα τα προβλήματα XML;?
TryRepairXml αντιμετωπίζει ανακτήσιμα προβλήματα όπως ανοιχτά στοιχεία, έλλειψη ονοματομέτρων και κρυμμένες τιμές. Διαρθρωτικά ισχύει αλλά σωματικά ασυμβίβαστο XML (για παράδειγμα, σπάσει παραπομπές φόρμουλα) μπορεί ακόμα να προκαλέσει XmlParsingException.
Συνοπτική αναφορά API
| Κλάση | Περιγραφή |
|---|---|
WorkbookXmlMapper | Διαβάστε / Γράψτε xl/workbook.xml |
WorksheetXmlMapper | Διαβάστε/Διαβάζετε ανά φύλλο τμήματα XML |
SharedStringTableXmlMapper | Διαβάστε / Γράψτε xl/sharedStrings.xml |
StylesheetXmlMapper | Διαβάστε / Γράψτε xl/styles.xml |
XmlParsingException | Απεργία για ανακτήσιμες αποτυχίες XML |