internal int AddName(TXlsNamedRange Range, TWorkbookGlobals Globals, TCellList CellList) { int aCount = Count; bool IsInternal; bool ValidName = TXlsNamedRange.IsValidRangeName(Range.Name, out IsInternal); if (IsInternal) { Range.OptionFlags |= 0x020; } for (int i = 0; i < aCount; i++) { //Documentation is wrong. We need the sheet index (1 based) not the externsheetindex /*int rSheet=-1; * if (this[i].RangeSheet>=0) * { * rSheet = GetSheet(this[i].RangeSheet); * } */ int rSheet = this[i].RangeSheet; if ( (rSheet == Range.NameSheetIndex) && (String.Equals(this[i].Name, Range.Name, StringComparison.CurrentCultureIgnoreCase)) ) { this[i] = new TNameRecord(Range, Globals, CellList); //We have to be careful not to change name ordering, or formulas would point to wrong ranges. //If we found it, then it *is* a valid name return(i); } } if (!ValidName) { XlsMessages.ThrowException(XlsErr.ErrInvalidNameForARange, Convert.ToString(Range.Name)); } Add(new TNameRecord(Range, Globals, CellList)); CheckInternalNames(Range.OptionFlags, Globals); return(Count - 1); }
internal void ReplaceName(int Index, TXlsNamedRange Range, TWorkbookGlobals Globals, TCellList CellList) { bool IsInternal; bool ValidName = TXlsNamedRange.IsValidRangeName(Range.Name, out IsInternal); if (!ValidName) { XlsMessages.ThrowException(XlsErr.ErrInvalidNameForARange, Convert.ToString(Range.Name)); } if (Index < 0 || Index >= Count) { XlsMessages.ThrowException(XlsErr.ErrXlsIndexOutBounds, Index, "Index", 0, Count - 1); } if (IsInternal) { Range.OptionFlags |= 0x020; } this[Index] = new TNameRecord(Range, Globals, CellList); //We have to be careful not to change name ordering, or formulas would point to wrong ranges. CheckInternalNames(Range.OptionFlags, Globals); }