Пример #1
0
        /// <summary>
        /// Creates a new <see cref="ParsingScope"/> and puts it on top of the stack.
        /// </summary>
        /// <param name="address"></param>
        /// <returns></returns>
        public virtual ParsingScope NewScope(RangeAddress address)
        {
            ParsingScope scope;

            if (_scopes.Count() > 0)
            {
                scope = new ParsingScope(this, _scopes.Peek(), address);
            }
            else
            {
                scope = new ParsingScope(this, address);
            }
            _scopes.Push(scope);
            return(scope);
        }
Пример #2
0
        private void Initialize()
        {
            _index = 0;
            var factory = new RangeAddressFactory(ParsingContext.ExcelDataProvider);

            if (Arguments.RangeInfo == null)
            {
                _rangeAddress = factory.Create(ParsingContext.Scopes.Current.Address.Worksheet, Arguments.RangeAddress);
            }
            else
            {
                _rangeAddress = factory.Create(Arguments.RangeInfo.Address.WorkSheet, Arguments.RangeInfo.Address.Address);
            }
            _currentCol = _rangeAddress.FromCol;
            _currentRow = _rangeAddress.FromRow;
            SetCurrentValue();
        }
Пример #3
0
        internal IXLTable CopyTo(XLWorksheet targetSheet, bool copyData = true)
        {
            if (targetSheet == Worksheet)
            {
                throw new InvalidOperationException("Cannot copy table to the worksheet it already belongs to.");
            }

            var targetRange = targetSheet.Range(RangeAddress.WithoutWorksheet());

            if (copyData)
            {
                RangeUsed().CopyTo(targetRange);
            }
            else
            {
                HeadersRow().CopyTo(targetRange.FirstRow());
            }

            String tableName = Name;
            var    newTable  = (XLTable)targetSheet.Table(targetRange, tableName, true);

            newTable.RelId = RelId;
            newTable.EmphasizeFirstColumn = EmphasizeFirstColumn;
            newTable.EmphasizeLastColumn  = EmphasizeLastColumn;
            newTable.ShowRowStripes       = ShowRowStripes;
            newTable.ShowColumnStripes    = ShowColumnStripes;
            newTable.ShowAutoFilter       = ShowAutoFilter;
            newTable.Theme          = Theme;
            newTable._showTotalsRow = ShowTotalsRow;

            Int32 fieldCount = ColumnCount();

            for (Int32 f = 0; f < fieldCount; f++)
            {
                var tableField = newTable.Field(f) as XLTableField;
                var tField     = Field(f) as XLTableField;
                tableField.Index             = tField.Index;
                tableField.Name              = tField.Name;
                tableField.totalsRowLabel    = tField.totalsRowLabel;
                tableField.totalsRowFunction = tField.totalsRowFunction;
            }
            return(newTable);
        }
Пример #4
0
 public override int GetHashCode()
 {
     return(RangeAddress.GetHashCode()
            ^ Worksheet.GetHashCode());
 }
Пример #5
0
 public ParsingScope(ParsingScopes parsingScopes, RangeAddress address)
     : this(parsingScopes, null, address)
 {
 }