コード例 #1
0
ファイル: UXlsWorkbookGlobals.cs プロジェクト: mwilian/demos
        internal void InsertAndCopyRange(TXlsCellRange SourceRange, TFlxInsertMode InsertMode, int DestRow, int DestCol, int aRowCount, int aColCount, TSheetInfo SheetInfo)
        {
            FNames.ArrangeInsertRange(SourceRange.OffsetForIns(DestRow, DestCol, InsertMode), aRowCount, aColCount, SheetInfo);
#if (FRAMEWORK30 && !COMPACTFRAMEWORK)
            FXlsxPivotCache.ArrangeInsertRange(SourceRange.OffsetForIns(DestRow, DestCol, InsertMode), aRowCount, aColCount, SheetInfo);
#endif
        }
コード例 #2
0
ファイル: UXlsHyperLink.cs プロジェクト: mwilian/demos
        internal void InsertAndCopyRange(TXlsCellRange SourceRange, TFlxInsertMode InsertMode, int DestRow, int DestCol, int aRowCount, int aColCount, TRangeCopyMode CopyMode, TSheetInfo SheetInfo)
        {
            int aCount = Count;

            for (int i = 0; i < aCount; i++)
            {
                this[i].ArrangeInsertRange(SourceRange.OffsetForIns(DestRow, DestCol, InsertMode), aRowCount, aColCount, SheetInfo);
            }

            if (CopyMode == TRangeCopyMode.None)
            {
                return;
            }

            int RTop  = SourceRange.Top;
            int RLeft = SourceRange.Left;

            if (DestRow <= SourceRange.Top)
            {
                RTop += aRowCount * SourceRange.RowCount;
            }
            if (DestCol <= SourceRange.Left)
            {
                RLeft += aColCount * SourceRange.ColCount;
            }
            int RRight  = RLeft + SourceRange.ColCount - 1;
            int RBottom = RTop + SourceRange.RowCount - 1;

            //Copy the cells.

            if (aRowCount > 0 || aColCount > 0)
            {
                for (int i = 0; i < aCount; i++)
                {
                    THLinkRecord r = this[i];
                    if (r.FirstCol >= RLeft && r.LastCol <= RRight &&
                        r.FirstRow >= RTop && r.LastRow <= RBottom)
                    {
                        for (int rc = 0; rc < aRowCount; rc++)
                        {
                            Add(((THLinkRecord)TBaseRecord.Clone(r, SheetInfo)).Offset(DestRow - RTop + rc * SourceRange.RowCount, DestCol - RLeft));
                        }
                        for (int cc = 0; cc < aColCount; cc++)
                        {
                            Add(((THLinkRecord)TBaseRecord.Clone(r, SheetInfo)).Offset(DestRow - RTop, DestCol - RLeft + cc * SourceRange.ColCount));
                        }
                    }
                }
            }
        }