...
About templates and data markers
An A PowerPointWriter template is an a PowerPoint presentation that contains PowerPointWriter data markers. A data marker is a line of text beginning with %%=
that specifies a database column, variable, or array to insert into the presentation. PowerPointWriter supports data markers embedded in text. Data markers are added to a presentation in PowerPoint and then bound to data sources in code. PowerPointWriter populates the data markers with values from the data sources when the code is executed.
Excerpt |
---|
This Part 1 of this tutorial demonstrates how to use data markers to import single rows of data. |
...
- Names must begin with a letter (A-Z, a-z)
- The
[
]
) are optional, but must be used when the data marker contains spaces or Unicode characters- The following is a list of characters allowed in data marker names without brackets: ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz1234567890_
- Names must exactly match the names in the data source.
- If a column in a database is 'Street Address', the
ColumnName
must be[Street Address]
to account for the space. Similarly, if a data source name is "DataSource1", the data marker name must beDataSource1
or[DataSource1]
.
- If a column in a database is 'Street Address', the
...
Adding data markers to the the template
Our The template for Part 1 consists of 5 2 slides populated with text and data markers.
Info | ||
---|---|---|
| ||
In the downloadable SomeFileNamePowerPointWriter_BasicTutorials.zip under ProjectProposal, there is a completed template file located in ProjectProposal/templates/part1_template.pptx. |
...
- Open Microsoft PowerPoint and start with a blank .pptx file. Save the file as part1_template.pptx.
...
- (optional) Set the presentation theme by going to the Design tab
...
- and selecting one of the built-in themes.
- A title slide should have been added to the presentation by default. If not, then insert a title slide now.
These will hold our data markers for the title, date and review status of the proposed product. - Populate the title textbox with the data marker
%%=Proposal.Name
. When the template is processed, this data marker will get the value from the 'Name' column in the 'Proposal' data source.
- In the
...
- subtitle box, add
...
%%=Proposal.Date
...
- .
- Insert a new textbox and place in near the bottom of the slide. This will hold the review status of the project. Type
%%=Proposal.ReviewStatus
...
- into the box. Format with desired font size and formatting.
The final slide should look something like the one below.
...
- Insert a new content slide
...
- . This slide should consist of two text boxes
...
- : one for the title and a large one for the body of text.
- In the title text box, place the data marker %%=Proposal.Name. Note that this is the same as the data marker used on our first slide, and will be populated with the same data.
...
- In the large text box add the following text to a list:
- Leader: %%=Proposal.Leader
...
- Start Date: %%=Proposal.Start
...
- Estimated time to completion: %%=Proposal.Estimate
...
- Description: %%= Proposal.Summary
...
These will contain additional data about our project. PowerPointWriter supports data markers embedded in text, we so only need one text box for this informationis needed for all of our data markers.
The finished slide should look like the one below.
...
Info | ||
---|---|---|
| ||
There is a sample web application page |
...
- Include the SoftArtisans.OfficeWriter.PowerPointWriter namespace in the code behind
Code Block using SoftArtisans.OfficeWriter.PowerPointWriter;
...
- In the method that will actually 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
...
- an array to hold the values
...
- that will appear in the presentation.
...
Code Block //The values to display //This presentation is for a project proposal for a surgery scheduling software object[] valuesArray = { "
...
Surgery
...
Schedule", "
...
January 1, 2014", "Under Review", "
...
Pamela
...
Blythe", "
...
January 1, 2015", "
...
6
...
months", "
...
Software to schedule surgeries that require multiple resources such as surgeons, assistants, nurses, pre-op and post-op space, surgery theater, long-term recovery rooms." };
- Create a second array that contains the column names. The column names values must match the data markers in the template.
Code Block //The column names are the same as the data markers string[] columnNamesArray = { "Name", "Date", "ReviewStatus", "Leader", "Start", "Estimate", "Summary" };
...
- Bind the 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, "Proposal", 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 pptt.Save(Page.Response, "Part1_Output.xlsx", false);
Final Code
Code Block |
---|
PowerPointTemplate pptt = new PowerPointTemplate(); pptt.Open(Page.MapPath("//templates//part1_template.pptx")); DataBindingProperties dataProps = pptt.CreateDataBindingProperties(); object[] valuesArray = { "ProjectSurgery NameSchedule", "Project DateJanuary 1, 2014", "Under Review", "LeaderPamela NameBlythe", "Start DateJanuary 1, 2015", "Cost6 Estimatemonths", "Project SummarySoftware to schedule surgeries that require multiple resources such as surgeons, assistants, nurses, pre-op and post-op space, surgery theater, long-term recovery rooms." }; string[] columnNamesArray = { "Name", "Date", "ReviewStatus", "Leader", "Start", "Estimate", "Summary" }; pptt.BindData(valuesArray, columnNamesArray, "Proposal", dataProps); pptt.Process(); pptt.Save(Page.Response, "Part1_Output.xlsx", false) |
...
You can download the code for the Basic PowerPointWriter Tutorials as a Visual Studio solution, which includes the Project Proposal.