Worksheet::CopyTo

Description

Copy data to worksheet with optional row shift

Syntax

int CopyTo( Worksheet & wksDest, int nC1, int nC2, int nR1, int nR2, int nDestC1, int nLNRow = -1, DWORD dwCntrl 
= CPYT_EXTERN_UPDATE_ORIGIN, int nDestR1 = 0, vector<int>* pvnLabelTypes = NULL )

Parameters

wksDest
[modified] output worksheet, created if not attached to existing
nC1
[input] source(this) starting column to copy, 0 offset
nC2
[input] ending column to copy, -1 to copy all columns (Inclusive)
nR1
[input] beginning data row, 0 offset
nR2
[input] ending data row, -1 to last row (Exclusive)
nDestC1
[input] output worksheet first column index, 0 offset
nLNRow
[input] source worksheet row index to use as output column long names, -1 if not applicable
dwCntrl
[input] specify which properties of column to be copied
see CPYTOPTION in oc_const.h, Can be:
CPYT_COPY_COLUMN_FORMAT,
CPYT_COPY_COLUMN_DESIGNATIONS,
CPYT_COPY_COLUMN_LABELS,
CPYT_COPY_ATTACHED_EMF,
...
nDestR1
[input] output sheet first row index, 0 offset (8.1SR0)
pvnLabelTypes
[input] Specify which kind of labels should be copied, NULL means all shown labels should be copied. For this control to be effect, CPYT_COPY_COLUMN_LABELS in dwCntrl should be turned on. (8.1SR1)
see ROWCOLLABELTYPE in oc_const.h, Can be:
RCLT_LONG_NAME,
RCLT_UNIT,
RCLT_COMMENT,
RCLT_UDL ( RCLT_UDL + 1, RCLT_UDL + 2 stands for the 2rd, 3th user defined parameter ),
...

Return

If the method succeeds, the return value is zero else a nonzero error value is returned.

Examples

// This example will copy columns with specified column labels into a new worksheet. 
// Before running this example please activate a worksheet that contains data and has longname and unit cells filled.
void Worksheet_CopyTo_Ex1()
{
        // Use the active worksheet as our data source
        Worksheet wksSource = Project.ActiveLayer();
        if( wksSource )
        {
                // Create a new worksheet to be the target of our copy
                Worksheet wksTarget;
                wksTarget.Create("origin");

                // Copy from all columns
                // Remember that column and row indexes are zero based
                int nC1 = 0, nC2 = -1; // Use -1 to indicate last column

                // Copy the first 9 rows
                // The source ending row (nR2) is exclusive
                int nR1 = 0, nR2 = 9;
                
                // Copy to the target worksheet starting at the 2nd column
                // Remember that column indexes are zero based
                int nDestC1 = 1;

                // Also copy column formats, designations and column labels.
                DWORD dwCtrl = CPYT_COPY_COLUMN_FORMAT | CPYT_COPY_COLUMN_DESIGNATIONS | CPYT_COPY_COLUMN_LABELS;
                
                // Define a vector specifying longname and unit to be copied.
                vector<int> vnLabelTypes;
                DWORD dwLabel = RCLT_LONG_NAME;
                vnLabelTypes.Add(dwLabel);
                dwLabel = RCLT_UNIT;
                vnLabelTypes.Add(dwLabel);               

                int nRet = wksSource.CopyTo(wksTarget, nC1, nC2, nR1, nR2, nDestC1, -1, dwCtrl, 0, &vnLabelTypes); 
        }
}

// Before running this example please activate a worksheet that contains data.
void Worksheet_CopyTo_Ex2()
{
        Worksheet wksSource = Project.ActiveLayer();
        if( wksSource )
        {
                // Copy from all columns
                int nC1 = 0, nC2 = -1; 
                // The source ending row (nR2) is exclusive
                int nR1 = 2, nR2 = 4;
                //Copy to the worksheet starting at the 12th column
                int nDestR1 = 12;
                
                DWORD dwCtrl = CPYT_APPEND_BY_ROW | CPYT_ALLOW_SAME_LAYER_IF_NOT_INTERSECT;
                int nRet = wksSource.CopyTo(wksSource, nC1, nC2, nR1, nR2, 0, -1, dwCtrl, nDestR1); 
        }
}

Remark

See Also

Worksheet::CreateCopy

header to Include

origin.h