Graph Add Wks Table

 

 

Version Info

Minimum Origin Version Required: Origin 8 SR0

Need to do before Running Examples

Prior to running the following example, the graph_utils.c file need to be loaded and compiled. This can be done from script with the following command or just add this file to your workspace.

run.LoadOC(Originlab\graph_utils.c);

Example

#include <..\Originlab\graph_utils.h>
void graph_add_table()
{
        GraphPage gp;
        gp.Create("Origin");
        GraphLayer gl = gp.Layers(); // get active layer
        
    // 1. create table worksheet
    Worksheet wks;
    wks.Create("Table", CREATE_HIDDEN); // create hidden worksheet with "Table" template    
    WorksheetPage wp = wks.GetPage();
    wp.Rename("Table1");
    
    // 2. set table size and fill in text; add table as link to graph
    wks.SetSize(3, 2);
    wks.SetCell(0, 0, "1");
    wks.SetCell(0, 1, "Layer 1");
   
    wks.SetCell(1, 0, "2");
    wks.SetCell(1, 1, "Layer 2");
    
    wks.SetCell(2, 0, "3");
    wks.SetCell(2, 1, "Layer 3");
    
    GraphObject grTable = gl.CreateLinkTable(wp.GetName(), wks);
    
    // 3. arrange size and position of table
    // get the position of graph layer
    int    Unit;
    double         dLeft, dTop, dRight, dBottom;
        layer_get_position(gl, &dLeft, &dTop, &dRight, &dBottom, &Unit);         
        
        // convert unit to Inch
        vector xx(4);
        xx[0] = dRight - dLeft; //width
        xx[1] = dBottom - dTop; //height
        xx[2] = dLeft;
        xx[3] = dTop; 
        gl.UnitsConvert(M_INCH, xx, Unit);// convert value in xx to Inch unit
        
        // change Left and Top according to layer 3
        double grLeft = xx[2] + 0.1; // left of layer 3 + 0.1 Gap
        double grTop = xx[3]; // top of layer 3
                
        Tree tr;
        tr.Root.Dimension.Left.dVal = grLeft;
        tr.Root.Dimension.Top.dVal = grTop;    
        tr.Root.Dimension.Units.nVal = 0; // 0: inch
        
        if( 0 == grTable.UpdateThemeIDs(tr.Root) )
                grTable.ApplyFormat(tr.Root, true, true);         

}