Работа с XML обработка

Работа с XML обработка

XLSX файловете съхраняват данните си в XML части вътре в OPC пакет. Aspose.Cells FOSS за .NET излага слоя на разглеждане и сериализация на XML чрез четири класа: WorkbookXmlMapper, WorksheetXmlMapper, SharedStringTableXmlMapper, и StylesheetXmlMapper.Всеки картограф прилага и двете. Read и в) Write Това са вътрешни инфраструктурни API повечето кодове на приложенията работят изцяло чрез XML. Workbook и в) Worksheet обекти.


Класове на XML Mapper

Всеки XML мапър е отговорен за една част на XLSX структурата:

КартировчикXML частОтговорност
WorkbookXmlMapperxl/workbook.xmlМетаданни на ниво работна книга, препратки към листове, дефинирани имена
WorksheetXmlMapperxl/worksheets/sheetN.xmlДанни за клетките, формули, хипервръзки, условни формати, валидиране на данни
SharedStringTableXmlMapperxl/sharedStrings.xmlОбща таблица от нишки за дедупилирани стойности на ниши
StylesheetXmlMapperxl/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 mapper не са предназначени да бъдат инстанцирани от кода на приложението те се призовават автоматично по време на Workbook строителство и Save().
  • Ако трябва да инспектирате суровото XML съдържание за диагностика, извлечете XLSX като ZIP и изследвайте съответните части на XML директно.

Общи проблеми

ИзданиеПричина за товаРемонтиране
XmlParsingException на товарНеправилно оформени XML в една от XLSX частитеНастройка TryRepairXml = true в) от LoadOptions
Липсващи модели след пътуване обратноStylesheetXmlMapper Не можа да анализира персонализиран стил на записитеПроверка. LoadDiagnostics.Issues за стилово-основни поправки
Недостиг на споделени нишки в зареден файлSharedStringTableXmlMapper Намерих корумпирана споделена таблица от последователни.Позволяване на TryRepairXml; проверете дали оригиналният файл има валиден код. xl/sharedStrings.xml

FAQ

Мога ли да внедря собствения си XML мапър?

Класовете XML mapper са запечатани вътрешни инфраструктури. Custom mappers не се поддържат в текущата API повърхност.

Защо има отделен? SharedStringTableXmlMapper?

Спецификацията OOXML разделя стойностите на реда в споделена таблица от редове (xl/sharedStrings.xmlКартировчикът обработва четенето и писането на тази таблица независимо.

- Да, нали? TryRepairXml = true да разрешим всички XML проблеми?

TryRepairXml Строежът на XML е много по-силен от този на другия, но семантично несъвместим XML (например счупени референции към формули) може да предизвика проблеми като: XmlParsingException.


Снимка на API референтна информация

КласътОписание на състоянието
WorkbookXmlMapperЧете/пише xl/workbook.xml
WorksheetXmlMapperЧете/пише XML части на лист
SharedStringTableXmlMapperЧете/пише xl/sharedStrings.xml
StylesheetXmlMapperЧете/пише xl/styles.xml
XmlParsingExceptionИзхвърлени на непоправими XML провали в анализа
 Български