2.2.4.46.22 Worksheet::Extract

Description

Extracts a Worksheet to a new or an existing worksheet

Syntax

BOOL Extract( Worksheet & wksDest, const vector<uint> & vnRowIndices, const vector<uint> & vnColIndices )

Parameters

wksDest
[output] The Worksheet where the extracted data is copied onto, if unattached a new Worksheet is created.
vnRowIndices
[input] Row indices to extract, 0-offset
vnColIndices
[input] Column indices to extract data, if wksDest is the current worksheet, all columns not in this list will be deleted

Return

TRUE if succesful FALSE otherwise

Examples

EX1

//Extract a worksheet data to another worksheet.
void Worksheet_Extract_Ex1()
{
    Worksheet wks("Book1");
    Worksheet wksDest("Book2");
    vector<uint> vnRowIndices = {0,1,4,6};
    vector<uint> vnCols = {1,3};
    BOOL bRet = wks.Extract(wksDest, vnRowIndices, vnCols);
    if(bRet)
        out_str("done");
}

EX2

// example to show how to extract data from a worksheet and put it back to the same
// worksheet.
// We will use col(2) alias as 'a' to test for missing values 
// we first define the NULL const as 0/0 and then
// we setup alias a as col(2)
// You need to setup a worksheet with 5 columns and put some cells in col(2)
// as missing, like put in text and those are the rows we will extract
void Worksheet_Extract_Ex2()
{
    string strCond = "a==null";
    string strLTRunBeforeloop = "const null=0/0;range a=2";
    
    Worksheet wks = Project.ActiveLayer();
    vector<uint> vnRowIndices;
    // assume the active wks has at least 5 columns
    vector<uint> vnCols = {0,2,3,4};
    int nn = wks.SelectRows(strCond, vnRowIndices, 0, -1, -1, strLTRunBeforeloop);
    if(nn < 0)
        out_str("User cancel");
    else if(nn == 0)
        out_str("no matching row");
    else
    {
        Worksheet wksTemp;
        if(wksTemp.CreateCopy(wks, CREATE_HIDDEN, DCTRL_COPY_DATA))
        {
            BOOL bRet = wksTemp.Extract(wks, vnRowIndices, vnCols);
            if(bRet)
                out_str("done");
        }
        wksTemp.Destroy();
    }
}

Remark

See Also

Worksheet::SelectRows

Header to Include

origin.h