Beispiel #1
0
        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();
            }
        }
Beispiel #2
0
        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();
            }
        }