Page tree

Versions Compared

Key

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

IntroIntro 

Excerpt

This guide will explain how to import a single row of values into a PowerPoint presentation using data markers. This assumes a basic understanding of data markers.

...

Center

Jump to:

Table of Contents
maxLevel3
minLevel2

Setting up the Template

The template file should contain data markers following proper data marker syntax. Each copy of a given data marker will be populated with the same value. If the data marker appears in a table row or list entry, nothing will be automatically repeated if only one row is imported.

...

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.

...

  1. Use a single dimensional array
  2. Use  Use a multi-dimensional data source AND
    1. the The data source only has one row of data
    2.  DataBindingProperties.MaxRowsToImport is set to 1

Single Dimensional Arrays

Arrays don't have built-in means to store column names. The user must specify the column names in a string array that is passed to {{PowerPointTemplate.BindData}} at run time.

Code Block
csharp
languagecsharpc#
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
languagevbnettitlevb.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, colNamescolnames, "DataSource1", DataProps);
        
		pptt.Process()
        		pptt.Save(Page.ResponseRepponse, _
              "ArrayBinding.pptx", _
               False)

Multi-dimensional data sources

Data source with one row of data

If a multi-dimensional data source has only one row of data, the automatic repeating behavior will not occur. This is consistent for any of the multi-dimensional data sources supported by BindData:

  • Jagged  Jagged and multi-dimensional arraysarrays 
  • Custom  Custom objects (IEnumerable<T>) 
  • System System.IDataReader and System.DataTable

...

MaxRowsToImport is a property on the DataBindingProperties object  object that can be used to limit the number of rows that are imported, regardless of how many rows are actually in the data source.

Code Block
csharp
languagecsharp
titleSetting the MaxRowsToImport Property
c#
DataBindingProperties DataPropsdataProps = ppttppt.DataBindingPropertiesCreateDataBindingProperties();
DataPropsdataProps.MaxRowsToImport = 1;
ppt.BindData(getDataTable(), "DataSourceName", dataProps);