private void ReadStyles(byte[] byteArray) { if (byteArray == null) return; _Styles = new XlsxStyles(); bool rXlsxNumFmt = false; Stream xmlFileStream = new MemoryStream(byteArray); using (XmlReader reader = XmlReader.Create(xmlFileStream)) { while (reader.Read()) { if (!rXlsxNumFmt && reader.NodeType == XmlNodeType.Element && reader.Name == N_numFmts) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Depth == 1) break; if (reader.NodeType == XmlNodeType.Element && reader.Name == XlsxNumFmt.N_numFmt) { _Styles.NumFmts.Add( new XlsxNumFmt( int.Parse(reader.GetAttribute(XlsxNumFmt.A_numFmtId)), reader.GetAttribute(XlsxNumFmt.A_formatCode) )); } } rXlsxNumFmt = true; } if (reader.NodeType == XmlNodeType.Element && reader.Name == N_cellXfs) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Depth == 1) break; if (reader.NodeType == XmlNodeType.Element && reader.Name == XlsxXf.N_xf) { _Styles.CellXfs.Add( new XlsxXf( int.Parse(reader.GetAttribute(XlsxXf.A_xfId)), int.Parse(reader.GetAttribute(XlsxXf.A_numFmtId)), reader.GetAttribute(XlsxXf.A_applyNumberFormat) )); } } break; } } xmlFileStream.Close(); } }