Trabajar con el procesamiento XML
Trabajar con el procesamiento XML
Los archivos XLSX almacenan sus datos en partes XML dentro de un paquete OPC. Aspose.Cells FOSS para .NET exponer la capa de parsón y serializacin XML a través de cuatro clases de mapas: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper,y, StylesheetXmlMapper.Cada cartel realiza ambos Read y Write operaciones para su parte XML correspondiente. Estos son API de infraestructura interna — la mayoría del código de aplicación funciona en su totalidad a través de la Workbook y Worksheet Objetos →.
Clasificación de XML Mapper
Cada mapa XML es responsable de una parte XML de la estructura XLSX:
| Mapas | Parte XML | Responsabilidad |
|---|---|---|
WorkbookXmlMapper | xl/workbook.xml | Metadatos de nivel del libro de trabajo, referencias de hoja, nombres definidos |
WorksheetXmlMapper | xl/worksheets/sheetN.xml | Datos de células, fórmulas y hiperligazones, formatos condicionales, validación de datos |
SharedStringTableXmlMapper | xl/sharedStrings.xml | Tabla de rango compartida para valores de la red duplicada |
StylesheetXmlMapper | xl/styles.xml | Estilos de células, fuentes, rellenos, límites, formatos de número |
Cada mapa expresa dos métodos - Read y Write — invocado por la carga de la biblioteca y guardando los tubos respectivamente.
XmlParsingException
XmlParsingException se lanza cuando un mapa encuentre XML malformado que no puede ser reparado. WorkbookLoadException en la hierarquía de error cuando el fracaso ocurre durante XML parsing específicamente.
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);
}Consejos y mejores prácticas
- Sitio
TryRepairXml = trueEn elLoadOptionspara permitir el camino de parchón tolerante a los errores del mapa. - Catch
XmlParsingExceptionAdemás de queWorkbookLoadExceptionCuando se tratan de archivos de sistemas externos que puedan producir XML malformado. - Las clases de mapas XML no están destinadas a ser instantiadas por código de aplicación — se invocan automáticamente durante el curso.
WorkbookLa construcción ySave(). - Si necesita inspeccionar el contenido XML crudo para la diagnóstica, extrae XLSX como ZIP y examina directamente las partes XML relevantes.
Problemas comunes
| Problemas | Causas | Fixado |
|---|---|---|
XmlParsingException En carga | XML malformado en una de las partes XLSX | Sitio TryRepairXml = true En el LoadOptions |
| Los estilos perdidos después de un viaje redondo | StylesheetXmlMapper No podía romper un registro de estilo personalizado | Verificar LoadDiagnostics.Issues para las entradas de reparación relacionadas con el estilo |
| Comparte líneas que faltan en archivos cargados | SharedStringTableXmlMapper Encontrado una corrompida mesa de cordas compartida | Permite TryRepairXml;• Verificar el archivo original tiene una validez. xl/sharedStrings.xml |
FAQ
¿Puedo implementar mi propio mapa XML?
Las clases de mapas XML son infraestructura interna segellada. los mapas personalizados no se soportan en la superficie API actual.
¿Por qué hay una separación? SharedStringTableXmlMapper?
La especificación OOXML separa los valores de la línea en una tabla de las líneas compartidas (xl/sharedStrings.xmlPara desduplicar las líneas repetidas a través del libro de trabajo.El mapa maneja la lectura y la escritura de esta tabla independientemente.
¿Qué hace TryRepairXml = true ¿Todos los problemas de XML?
TryRepairXml trata problemas recuperables como elementos no cerrados, espacios de nombre faltantes y valores truncados. XML estructuralmente válido pero semánticamente inconsistente (por ejemplo, referencias de fórmula quebradas) todavía puede causar XmlParsingException.
Sumación de referencia API
| clase | Descripción |
|---|---|
WorkbookXmlMapper | Leer / Escritura xl/workbook.xml |
WorksheetXmlMapper | Leer/Escribir por hoja partes XML |
SharedStringTableXmlMapper | Leer / Escritura xl/sharedStrings.xml |
StylesheetXmlMapper | Leer / Escritura xl/styles.xml |
XmlParsingException | Desacuerda de los fallos de parse XML no recuperables |