Default Branch

030f162c2c · RadzenSpreadsheet reads xlsx worksheets with a streaming XmlReader instead of loading each sheet part into an XDocument. Rows and cells inside sheetData are read straight into lightweight records, while every other worksheet child (sheet views, columns, merged cells, conditional formatting, data validation, hyperlinks, drawings, tables, protection) is loaded with XNode.ReadFrom into a small document that the existing section parsers read unchanged, so a sheet is parsed in one pass and the cell elements are never materialized as XElement and XAttribute objects. The reader uses the settings XDocument.Load uses (IgnoreWhitespace, DtdProcessing.Parse, MaxCharactersFromEntities 10,000,000) and the sheet is still sized from the dimension cross-checked against every row and cell reference. Opening the workbook from #2750 in WebAssembly takes 10.7 s instead of 12.8 s, and every formula cell of the three attached workbooks still matches the value Excel saved. This mirrors XlsxWriter, which already writes sheetData through an XmlWriter around an XElement skeleton. · Updated 2026-10-06 19:19:59 +00:00

Branches