Trabalhar com Processamento XML

Trabalhar com Processamento XML

Trabalhar com Processamento XML

Os arquivos XLSX armazenam seus dados em partes XML dentro de um pacote OPC. Aspose.Cells FOSS para .NET expõe a camada de análise e serialização do XML através de quatro classes de mapeamento: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, e StylesheetXmlMapper.Cada mapeador implementa ambos os sistemas . Read e a) Write Estas são APIs de infraestrutura interna a maioria do código da aplicação funciona inteiramente através das Workbook e a) Worksheet objetos.


Classe de mapeamento XML

Cada mapeador XML é responsável por uma parte XML da estrutura XLSX:

Mapper (mapa)Parte XMLResponsabilidade
WorkbookXmlMapperxl/workbook.xmlMetadados a nível de livro, referências às folhas e nomes definidos
WorksheetXmlMapperxl/worksheets/sheetN.xmlDados de células, fórmulas, hiperlinks, formatos condicionais, validação dos dados
SharedStringTableXmlMapperxl/sharedStrings.xmlTabela de cadeias compartilhada para valores de cordas desduplicados
StylesheetXmlMapperxl/styles.xmlEstilo de célula, fontes, preenchimentos, bordas e formatos de número

Cada mapeador expõe dois métodos Read e a) Write invocado pela carga da biblioteca e por tubulações de poupança, respectivamente.


XmlParsingException

XmlParsingException é jogado quando um mapeador encontra XML malformada que não pode ser reparado. É levantado antes de WorkbookLoadException na hierarquia de erros quando a falha ocorre durante o parsing XML especificamente.

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);
}

Dicas e melhores práticas

  • Set (s) TryRepairXml = true em: LoadOptions para habilitar o mapa de erro tolerante do mapeador.
  • Captura de peixe XmlParsingException Além de: WorkbookLoadException quando se trata de ficheiros provenientes de sistemas externos susceptíveis de produzir XML malformado.
  • As classes de mapeador XML não são destinadas a ser instanciadas por código da aplicação elas são invocadas automaticamente durante o processo. Workbook construção e Save().
  • Se você precisar inspecionar o conteúdo XML bruto para diagnósticos, extraia o XLSX como um ZIP e examine diretamente as partes relevantes do XML.

Problemas comuns

EmissãoCausa da morteCorreção
XmlParsingException em cargaXML malformado em uma das partes XLSXSet (s) TryRepairXml = true em: LoadOptions
Desaparecimento de estilos após a viagem de ida e voltaStylesheetXmlMapper Não consegui paralisar um registo de estilo personalizadoVerificação LoadDiagnostics.Issues para entradas de reparação relacionadas com o estilo
Falta de cadeias compartilhadas no ficheiro carregadoSharedStringTableXmlMapper encontrou uma tabela de cadeias compartilhadas corrompidaAtivar TryRepairXml;Verificar que o ficheiro original tem um valor válido. xl/sharedStrings.xml

FAQ

Posso implementar o meu próprio mapeador XML?

As classes de mapeadores XML são infraestrutura interna selada. Os mapeadoras personalizadas não são suportados na superfície atual da API.

Porque é que há um sistema separado de SharedStringTableXmlMapper?

A especificação OOXML separa os valores de cadeia numa tabela de cordas partilhada (xl/sharedStrings.xmlO mapper lida com a leitura e escrita desta tabela de forma independente.

- Sim . TryRepairXml = true resolver todos os problemas XML?

TryRepairXml XML estruturalmente válido, mas semanticamente inconsistente (por exemplo referências de fórmula quebradas) ainda pode causar problemas como: XmlParsingException.


Resumo de referência da API

Classe:Descrição:
WorkbookXmlMapperLeitura/escrita xl/workbook.xml
WorksheetXmlMapperLeia/escreve partes XML por folha
SharedStringTableXmlMapperLeitura/escrita xl/sharedStrings.xml
StylesheetXmlMapperLeitura/escrita xl/styles.xml
XmlParsingExceptionLançado em falhas de análise XML irrecuperaveis
 Português