...
| ||||||
---|---|---|---|---|---|---|
|
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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 | ||||||
---|---|---|---|---|---|---|
| ||||||
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.
Code Block | |||||||
---|---|---|---|---|---|---|---|
| C#
| ||||||
DataBindingPropertiesstring[][] 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 | | vbnet | vbnet | ||||
title | vb.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.