xlsgen > overview > Chart picture insertion

 


Adding pictures in charts

 

When pictures are added in charts, they move with the chart, are deleted when the chart is deleted, and so on. xlsgen makes it easy to add pictures in charts.

The only difference between inserting a picture in the sheet (free from the chart) and inserting a picture in the chart is the coordinate system (left/right/top/bottom). In the latter, the coordinate system is expressed in 1/4000-th of respectively the width and the height of the chart.

Here is an example in C++ :

C/C++ code

    xlsgen::IXlsWorkbookPtr wbk = engine->New( L"chart_picinside.xls");

    xlsgen::IXlsWorksheetPtr wksht = wbk->AddWorksheet( L"Sheet1" );

    wksht->Label[2][2] = L"Janvier";
    wksht->Label[3][2] = L"Février";
    wksht->Label[4][2] = L"Mars";
    wksht->Label[1][3] = L"2000";
    wksht->Number[2][3] = 2;
    wksht->Number[3][3] = 6;
    wksht->Number[4][3] = 5;
    wksht->Label[1][4] = L"2001";
    wksht->Number[2][4] = 3;
    wksht->Number[3][4] = 7;
    wksht->Number[4][4] = 6;
    wksht->Label[1][5] = L"2002";
    wksht->Number[2][5] = 4;
    wksht->Number[3][5] = 8;
    wksht->Number[4][5] = 7;
    wksht->Label[1][6] = L"2003";
    wksht->Number[2][6] = 5;
    wksht->Number[3][6] = 9;
    wksht->Number[4][6] = 5;

    xlsgen::IXlsChartPtr chart = wksht->NewChart(xlsgen::charttype_bar2D, 
                                                     8, //row1
                                                     1, //col1 
                                                     16, //row2
                                                     5 //col2
                                                     );
    xlsgen::IXlsChartDataSourcePtr datasource = chart->DataSource;
    datasource->SeriesInRows = TRUE;
    datasource->Range = L"R1C2:R4C6";

    xlsgen::IXlsPicturePtr pic = chart->Shapes->Pictures->Add(L"input\\pic300x200.png");
    pic->LeftColumn = 3000; // 1/4000-th of the width of the chart
    pic->RightColumn = 4000; // 1/4000-th of the width of the chart
    pic->TopCell = 3; // 1/4000-th of the height of the chart
    pic->BottomCell = 700; // 1/4000-th of the height of the chart
    pic->AlternativeText = L"my alternative text";

   wbk->Close();

 

xlsgen documentation. © ARsT Design all rights reserved.