internal static void ImportNamedRanges(XmlReader reader, ExcelXmlWorkbook book, Worksheet ws)
        {
            if (!reader.IsEmptyElement)
            {
                while (reader.Read() && !(reader.Name == "Names" && reader.NodeType == XmlNodeType.EndElement))
                {
                    if (reader.NodeType == XmlNodeType.Element)
                    {
                        if (reader.Name == "NamedRange")
                        {
                            Range  range = null;
                            string name  = "";

                            foreach (XmlReaderAttributeItem xa in reader.GetAttributes())
                            {
                                if (xa.LocalName == "Name" && xa.HasValue)
                                {
                                    name = xa.Value;
                                }

                                if (xa.LocalName == "RefersTo" && xa.HasValue)
                                {
                                    range = new Range(xa.Value);
                                }
                            }

                            NamedRange nr = new NamedRange(range, name, ws);
                            book.NamedRanges.Add(nr);
                        }
                    }
                }
            }
        }
Esempio n. 2
0
        internal void AddNamedRange(Range range, string name, Worksheet ws)
        {
            if (range.FirstCell() != null && range.FirstCell().GetParentBook() != this)
            {
                throw new InvalidOperationException("Named range parent book should be same");
            }

            NamedRange namedRange = NamedRanges.Find(nr => nr.Name == name && nr.Worksheet == ws);

            if (namedRange == null)
            {
                namedRange = NamedRanges.Find(nr => nr.Range.Match(range));

                if (namedRange == null)
                {
                    if (name == "_FilterDatabase")
                    {
                        NamedRanges.Insert(0, new NamedRange(range, name, ws));
                    }
                    else
                    {
                        NamedRanges.Add(new NamedRange(range, name, ws));
                    }
                }
                else
                {
                    namedRange.Name = name;
                }
            }
            else
            {
                namedRange.Range = range;
            }
        }
Esempio n. 3
0
        internal string GetAutoFilterRange(Worksheet ws)
        {
            NamedRange namedRange = NamedRanges.Find(
                nr => nr.Name == "_FilterDatabase" && nr.Worksheet == ws);

            if (namedRange == null)
            {
                return("");
            }

            return(namedRange.Range.NamedRangeReference(false));
        }
Esempio n. 4
0
		internal static void ImportNamedRanges(XmlReader reader, ExcelXmlWorkbook book, Worksheet ws)
		{
			if (!reader.IsEmptyElement)
			{
				while (reader.Read() && !(reader.Name == "Names" && reader.NodeType == XmlNodeType.EndElement))
				{
					if (reader.NodeType == XmlNodeType.Element)
					{
						if (reader.Name == "NamedRange")
						{
							Range range = null;
							string name = "";

							foreach (XmlReaderAttributeItem xa in reader.GetAttributes())
							{
								if (xa.LocalName == "Name" && xa.HasValue)
									name = xa.Value;

								if (xa.LocalName == "RefersTo" && xa.HasValue)
									range = new Range(xa.Value);
							}

							NamedRange nr = new NamedRange(range, name, ws);
							book.NamedRanges.Add(nr);
						}
					}
				}
			}
		}