Travailler avec le traitement XML
Travailler avec le traitement XML
Les fichiers XLSX stockent leurs données en parties XML dans un paquet OPC. Aspose.Cells FOSS pour .NET expose la couche de partage et de sérialisation XML à travers quatre classes de cartes: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper,et StylesheetXmlMapper.Chaque carte met en œuvre les deux Read et Write les opérations pour la partie XML correspondante. Ce sont des API d’infrastructure interne - la plupart du code d’application fonctionne entièrement à travers le Workbook et Worksheet objets .
Les classes XML Mapper
Chaque dossier XML est responsable d’une partie XML de la structure XLSX :
| MAPER | XML partie | Responsabilité |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Méta-détails de niveau du livre de travail, références à feuilles, noms définis |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Données cellulaires, formules, hyperliens, format conditionnel, validation des données |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Tableau de fil partagé pour les valeurs de la fil dupliquées |
StylesheetXmlMapper | xl/styles.xml | Styles cellulaires, fonts, remplissages, limites, formats de numéro |
Chaque tableau présente deux méthodes - Read et Write - invocé par la charge de la bibliothèque et sauvegardant les pipelines respectivement.
XmlParsingException
XmlParsingException est jeté lorsque un dossier rencontre XML malformé qui ne peut pas être réparé. WorkbookLoadException dans la hiérarchie d’erreur lorsque le défaut se produit pendant le partage XML spécifiquement.
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);
}Conseils et meilleures pratiques
- Sélection
TryRepairXml = truedansLoadOptionsPour permettre la voie de partage tolérante des erreurs du dossier. - Catch
XmlParsingExceptionEn plus deWorkbookLoadExceptionLorsque vous traitez des fichiers provenant de systèmes externes qui peuvent produire un XML malformé. - Les classes de dossier XML ne sont pas destinées à être instantanées par code d’application - elles sont invocées automatiquement pendant la période de
WorkbookConstruction etSave(). - Si vous avez besoin d’inspecter le contenu XML pour les diagnostics, extraire la XLSX en tant que ZIP et examiner directement les parties XML pertinentes.
Les problèmes communs
| Problème | Cause | Fixé |
|---|---|---|
XmlParsingException sur le chargement | XML malformé dans l’une des parties XLSX | Sélection TryRepairXml = true dans LoadOptions |
| Des styles manquants après un tour de route | StylesheetXmlMapper ne pouvait pas faire un record de style | Vérifier LoadDiagnostics.Issues Pour les entrées de réparation liées à la style |
| Les filets partagés manquants dans le fichier chargé | SharedStringTableXmlMapper Une table de fil partagée corrompue | permet TryRepairXml;• Vérification du fichier original a une validité xl/sharedStrings.xml |
FAQ
Puis-je mettre en œuvre mon propre dossier XML ?
Les classes de cartes XML sont des infrastructures internes séchées. les cartettes personnalisées ne sont pas supportées dans la surface API actuelle.
Pourquoi il y a une séparation SharedStringTableXmlMapper?
La spécification OOXML séparera les valeurs de la barre dans une table de barre partagée (xl/sharedStrings.xml• de duplicer les lignes répétées sur le livre de travail. Le dossier traite la lecture et l’écriture de cette table indépendamment.
Le fait TryRepairXml = true Résoudre tous les problèmes XML ?
TryRepairXml traite des problèmes récupérables tels que les éléments non fermés, les espaces de nom manquants et les valeurs troncées. XML structurellement valide mais semantiquement inconsistant (par exemple, références de formule cassées) peut toujours causer XmlParsingException.
Le résumé de référence API
| Classes | Description |
|---|---|
WorkbookXmlMapper | Lire / Écrire xl/workbook.xml |
WorksheetXmlMapper | Lire/écrire par fichier des parties XML |
SharedStringTableXmlMapper | Lire / Écrire xl/sharedStrings.xml |
StylesheetXmlMapper | Lire / Écrire xl/styles.xml |
XmlParsingException | Les failles de parse XML inoubliables |