Page tree

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

Center

Jump to:

Table of Contents
maxLevel43
minLevel2

Binding Data

PowerPointTemplate has a single method for binding data to the data markers that are located in the template: PowerPointTemplate.BindData. Depending on the data source type and the number of rows in the data source, PowerPointWriter will either import a single row of data or import multiple rows by repeating sections of the presentation.

By default, every appearance of a data marker will be populated with the same data. For example, if %%=Header.CompanyLogo(image) appears on multiple slides, each data marker will be populated with the company logo. This behavior can be overwritten using data binding properties.

Types of Data Sources

Arrays of objects

Importing a single row of data with BindData

There are two ways to import a single row of data into a data marker
1. Use a single dimensional array
2. Set MaxRowsToImport to be 1.

Single Dimensional Arrays

Methods:

  • [PowerPointTemplate.BindData(Object[],String[],String,DataBindingProperties)]
  • [PowerPointTemplate.BindData(Object[][],String[],String,DataBindingProperties)]
  • [PowerPointTemplate.BindData(Object,,String[],String,DataBindingProperties)]

...

If a multidimensional array (Object[,]) or a jagged array (Object[][]) contains multiple rows, PowerPointWriter will import all the rows using built-in repeating behavior. To import a single row of data using a multidimensional or jagged array, the array can only contain a single row of data. For more information about using arrays to import multiple rows of data, please see Importing Multiple Rows of Data.

...

Examples

One dimensional array:

Code Block
csharp
csharp
titleC#



            PowerPointTemplate pptt = new PowerPointTemplate();
            pptt.Open(@"C:\DataBinding\ArrayBindingTemplate.pptx");

            string[] values = {"Hello World", "subtitle"};
            string[] colNames = {"header", "subtitle"};
            DataBindingProperties DataProps = pptt.CreateDataBindingProperties();

            pptt.BindData(values, colNames, "DataSource1", DataProps);
            pptt.Process();
            pptt.Save(Page.Response,
               "ArrayBinding.pptx",
               false);


Code Block
vbnet
vbnet
titlevb.net

        Dim pptt As New PowerPointTemplate()
        pptt.Open("C:\DataBinding\ArrayBindingTemplate.pptx")


        Dim values = New String() {"Hello World", "subtitle"}
        Dim colNames = New String() {"header", "subtitle"}
        Dim DataProps As DataBindingProperites = pptt.CreateDataBindingProperties();

        pptt.BindData(values, colNames, "DataSource1", DataProps);
        pptt.Process()
        pptt.Save(Page.Response, _
              "ArrayBinding.pptx", _
               False)
Two dimensional array:

Other data sources - Setting MaxRowsToImport

MaxRowsToImport is a data binding property that can be used to control how many rows of data to import from the data set. When using data sources other than a single dimensional array, a single row of data can be imported by setting MaxRowsToImport to 1.

C#
Code Block
csharp
csharp
title
Setting the MaxRowsToImport Property

DataBindingProperties 
string[][] twodim = { new string[]{"Watertown", "MA", "02472"}, new string[]{} }; string[] names = {"City", "State", "Zip"}; pptt.BindData(twodim, names, "TwoDimArray", pptt.CreateDataBindingProperties()); pptt.Process(); pptt.Save(Page.Response, "ArrayBinding.pptx", false);
Code Block
vbnetvbnet
titlevb.net

          Dim twodim()() As String = New String()() { _
               New String(){"Watertown", "MA", "02472"}, _
               New String(){}, _
               }
          Dim names As String() = {"City", "State", "Zip"}
          pptt.BindData(twodim, _
               names, _
               "TwoDimArray", _
          pptt.CreateDataBindingProperties())
          pptt.Process()
          pptt.Save(Page.Response, _
              "ArrayBinding.pptx", _
               False)
        

Custom objects

TO FILL IN AFTER THE MULTIPLE ROWS WITH NOTE ABOUT "ONLY 1 ROW OF DATA"

Data Readers and Data Tables

TO FILL IN AFTER THE MULTIPLE ROWS WITH NOTE ABOUT "ONLY 1 ROW OF DATA"

DataProps = pptt.DataBindingProperties();
DataProps.MaxRowsToImport = 1;

For more information about importing data from different data sources see Importing Multiple Rows of Data.