private void ReadStyles(Stream xmlFileStream) { if (null==xmlFileStream) return; _Styles=new XlsxStyles(); bool rXlsxNumFmt=false; using (XmlReader reader=XmlReader.Create(xmlFileStream)) { while (reader.Read()) { if (!rXlsxNumFmt&&reader.NodeType==XmlNodeType.Element&&reader.LocalName==N_numFmts) { while (reader.Read()) { if (reader.NodeType==XmlNodeType.Element&&reader.Depth==1) break; if (reader.NodeType==XmlNodeType.Element&&reader.LocalName==XlsxNumFmt.N_numFmt){ var formatIdText = reader.GetAttribute(XlsxNumFmt.A_numFmtId); Debug.Assert(formatIdText!=null); var formatId=int.Parse(formatIdText); var formatCode=reader.GetAttribute(XlsxNumFmt.A_formatCode); var numberFormat=new XlsxNumFmt(formatId, formatCode); _Styles.NumFmts.Add(numberFormat); } } rXlsxNumFmt=true; } if (reader.NodeType==XmlNodeType.Element&&reader.LocalName==N_cellXfs) { while (reader.Read()) { if (reader.NodeType==XmlNodeType.Element&&reader.Depth==1) break; if (reader.NodeType==XmlNodeType.Element&&reader.LocalName==XlsxXf.N_xf) { string xfId=reader.GetAttribute(XlsxXf.A_xfId); string numFmtId=reader.GetAttribute(XlsxXf.A_numFmtId); _Styles.CellXfs.Add( new XlsxXf( xfId==null?-1:int.Parse(xfId), numFmtId==null?-1:int.Parse(numFmtId), reader.GetAttribute(XlsxXf.A_applyNumberFormat) )); } } break; } } xmlFileStream.Close(); } }
private void ReadStyles(Stream xmlFileStream) { if (null == xmlFileStream) { return; } _Styles = new XlsxStyles(); bool rXlsxNumFmt = false; using (XmlReader reader = XmlReader.Create(xmlFileStream)) { while (reader.Read()) { if (!rXlsxNumFmt && reader.NodeType == XmlNodeType.Element && reader.LocalName == N_numFmts) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Depth == 1) { break; } if (reader.NodeType == XmlNodeType.Element && reader.LocalName == 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.LocalName == N_cellXfs) { while (reader.Read()) { if (reader.NodeType == XmlNodeType.Element && reader.Depth == 1) { break; } if (reader.NodeType == XmlNodeType.Element && reader.LocalName == XlsxXf.N_xf) { var xfId = reader.GetAttribute(XlsxXf.A_xfId); var numFmtId = reader.GetAttribute(XlsxXf.A_numFmtId); _Styles.CellXfs.Add( new XlsxXf( xfId == null ? -1 : int.Parse(xfId), numFmtId == null ? -1 : int.Parse(numFmtId), reader.GetAttribute(XlsxXf.A_applyNumberFormat) )); } } break; } } xmlFileStream.Close(); } }