...
- Include the SoftArtisans.OfficeWriter.PowerPointWriter namespace in the code behind
Code Block using SoftArtisans.OfficeWriter.PowerPointWriter;
- In the method that will create the presentation, instantiate the
PowerPointTemplate
object.Code Block PowerPointTemplate pptt = new PowerPointTemplate();
- Open the template file for the presentation.
Code Block pptt.Open(Page.MapPath("//templates//part1_template.pptx"));
- Create a DatabindingProperties object for binding data to the template.
Code Block DataBindingProperties dataProps = pptt.CreateDataBindingProperties();
- Create the 'Company' data source. When importing data with arrays, the values and column names are placed in separate arrays. This first array will contain the column names.
Code Block //The column names are the same as the data markers string[] columnNamesArray = {"Logo"};
- Create a second array that contains the values for the data source. When importing an image, the image value must be placed in a byte array. This can be done by using the File.ReadAllBytes method. See Importing Images for more information.
Code Block Byte[] logoArray = System.IO.File.ReadAllBytes((Page.MapPath("//data//logo.png"))); //Place the image byte[] into an object[] for the BindData call object[] valuesArray = {logoArray};
- Bind the 'Company data to the template. Make sure the data source name is the same as the name used in the template.
Code Block pptt.BindData(valuesArray, columnNamesArray, "Company", dataProps);
- Create the 'Employee' data source. This contains the Employee's name and team
Code Block string[] employeeColNames = {"Name", "Team"}; object[] employeeValues = {"Amy Alberts", "Development"};
- Bind the Employee data to the presentation
Code Block pptt.BindData(employeeValues, employeeColNames, "Employee", dataProps);
- Get the data for the Team data source
\ These calls are to a helper methodInfo title Following the Sample In the sample project, we are parsing CSV files with query results, rather than querying a live database. The CSV files are available under the data directory. There is a copy of the CSV parser,
GenericParsing.dll
in the bin directory of the projectGetCSVData
is defined in Part1.aspx.cs in aregion
marked Utility Methods.GetCSVData
that parses the CSV files and returns aDataTable
with the values.Code Block DataTable teamData = GetCSVData((Page.MapPath("//data//Team.csv")));
- Bind the Team data to the presentation
Code Block pptt.BindData(teamData, "Team", dataProps);
- Call process to import the data into the template and save the file.
Code Block pptt.Process();
- Stream the output in the response as an attachment
Code Block pptt.Save(Page.Response, "Part1_Output.pptx", false);
...