Automated PowerPoint Generation, or Making a "Slide Factory"
By Zach Gemignani
November 30, 2009
Find more about:
presentations,
powerpoint
2009 has been a year of sharing here at Juice. First there was our long-used DTP methodology for interactive Excel reporting. Then we released our JuiceKit SDK. Today, I want to share another bit of trickery we've used to solve a common PowerPoint presentation problem.
The challenge
Let's say you need to produce the same presentation month after month, updating the data each time. Or maybe you have a set of slides that need to go to a bunch of different audiences each with their own specific market, product, business line, or industry.
Updating all the slides by hand can be tedious, slow and error-prone. The presentation is basically the same, you simply want to swap out the underlying data. You need something that acts like a "mail merge" for PowerPoint.
Our approach
When we've helped clients with this situation, our approach has been to create re-usable PowerPoint slides (i.e. templates) that link directly to a database. This gives us the ability to stamp out new presentation by changing the raw data underneath. Simple enough to say; not quite so simple in practice. Here are a few of the hairy bits:
Data structuring. We populate the data into a Windows-accessible SQL database such as MS Access or SQL Server so we can use SQL queries to define the data needed for our charts and tables.
Slide templates. We create slides with charts, tables, and text boxes that are formatted to account for the variance in the data that may need to be displayed. Ensuring that the charts always look good is surprisingly hard.
Connect templates to data. Originally we rolled our own solution by creating a "templating" language that we embedded in the notes section of the slides. More recently, we discovered PTReportGen, a tool that extracts data from a data source and populates it into PowerPoint. PTReportGen allows you to connect objects in the slides (i.e. charts, tables, text boxes) to results from SQL queries from our data source. For each slide, there is a .PTR file that connects the contents of the slide to the database.
Scripted production. PTReportGen gives command line control, allowing us to write Python scripts to cycle through our data and populate the charts and tables in our template slides. Because we are interested in generating dozens (sometimes hundreds) of versions of a single slide, our script iterates over the database to pull different results across multiple dimensions. Below is a bit of pseudo-code to give a sense of how the scripting works to produce slides by market and by demographic:
markets = ('Market1','Market2','Market3')
demographics = ('Demo1','Demo2','Demo3')
PTRFileName = 'C:\Documents\UserName\Desktop\MyReportGenerator.ptr'
for demo in demographics:
for market in markets:
ReportFileName = 'PathName\FolderName\demo\market.ppt'
cmd = 'PPTReport.exe PTRFileName -demo -market'
- Post-processing. While most chart and data table designs can be achieved by clever template layouts, some advanced designs involve additional intervention to achieve the desired level of polish. A python script combs through the result template and adds coloration and layout improvements.
It isn't simple, but once constructed this "slide factory" is a valuable capability that can free up an enormous amount of time from presentation grunt work. Here's a short video that gives you a sense of what the process looks like. Personally, I find the production of slides vaguely hypnotic.
Other approaches and resources
We are not the first people to encounter or solve this problem. Below are a few other resources on the topic. I'd be curious if there is a native MS Office solution that I could include in this list.
PowerPoint Automation Toolkit: "With the PPTATK, PowerPoint becomes a best-case union of a presentation tool and a report writer. With the Tookit, you can build presentations which combine static slides from a slide library and data-driven slides which display charts, tables, and graphs from structured data sources."
PresentationPoint: "Generate new up-to-date multimedia reports with 1 click only - put real-time data in your presentations."
Microsoft Help: "Working with PowerPoint Presentations from Access Using Automation. Create a PowerPoint slide presentation from scratch using Access data."
Stack Overflow discussion on "PowerPoint Automation from MS Access…queries to chart?"
8 Ideas for Better Slides
By Zach Gemignani
December 26, 2007
Find more about:
powerpoint
presentations
I recently ran a few training sessions about how to visualize and present complex data. The high point was a series of “extreme slide makeovers” in which I honed the message and cleaned up visuals from existing presentations. Here are some ideas to tame busy, confusing slides.
Simplify your slide master, make room for content. Fancy borders, elaborate fonts, and background images do little to impress your audience. They leave little room for communication, either. For those saddled with frilly corporate slides, you’ll have to take on the Brand Standards Police.
It may help to get quantitative. Consider this PowerPoint standard slide master. Less than 50% of the total slide area (highlighted in green) is available for content.

Say something once, why say it again? The Talking Heads sang: You're talkin' a lot, but you're not sayin' anything / When I have nothing to say, my lips are sealed / Say something once, why say it again?
Wordy slides can be confusing and tedious. The author is using a lot of words—and often lots of qualifiers—in hopes that the core point lies somewhere within. The burden of synthesis is shifted to the audience. That’s not fair.
Make one point per slide. The take-away sentence on your slide should clearly state your point; the data on the slide should support that point. Any information that is tangential to the key concept can be pushed to an appendix or supporting slide.
Redundancies cause unnecessary repetition. I was surprised in my slide makeovers how often I found information that could be consolidated to simplify the slide. Redundancy came in many forms: multiple graphs repeating the same legend, axis labels that are described in a chart title, restating the same point.
Christmas is over, take down the decorations. Clear out clip art, “screenbeans”, and other images used to dress up the slide. Most effects are less “dazzling” than you might think. Eliminate gradients, shadows, 3D effects, and most animations. These design effects were exciting 10 years ago. But if they don’t help you communicate, move on.
On the other hand, consider using full-screen photos as a way to convey a idea or theme, accompanied by few words. Here’s an example from a presentation I gave a few months back:

Reduce chart-junk. Excel and PowerPoint charts come pre-packaged with a heaping helping of chart-junk (“unnecessary or confusing visual elements”). Here are a few things I change in a default column chart: no shaded background, grey gridlines, no chart outline, no y-axis line, no column outlines, turn off auto resize text, change column colors to increase contrast. If you want to save yourself from chart-junk induced carpal tunnel syndrome, check out Chris’ chart cleaner Excel add-in. Sometimes charts aren’t necessary at all. If you’re using a pie or stacked column chart to show a single data point, the number alone will do the job more clearly.

Delete your “Text-junk” too. Text can contain “chart-junk” too—visual distractions in text that dilute your message.
- Title Capitalization or Other Excessive and inconsistent use of Capital Letters. Title caps doesn’t make sense to use and is more difficult to read.
- Underlining. If you want to emphasize a word or phrase, use bold or italics.
- Don’t use bullets when there is only one item or sentence. People have become so accustomed to using bullets that they’ll use them when they are totally unnecessary.
- Bad fonts: The worst is Comic Sans MT, as the LMNOP blog describes: “These days, just like an e-mail from an “@ aol.com” address has a distinct lack of credibility, an e-mail written in this font makes the sender seem ridiculous and out of touch.”
Simplify style and formatting. Inconsistent colors, fonts, font sizes, and other styles are a subtle distraction. Limit yourself to three font colors (emphasis!, normal, low-emphasis), three font sizes, and three font styles. Here’s an example.
Three colors

Three sizes

Three font-styles

Putting it all together

All these points can be summed up as: Make everything on your slide serve your story. Best wishes for 2008!
7 comments | Show all comments only the last 5 are shown
Ken said:
I go even further:
I use a sans serif font (serifs aren't needed for what should be minimal text);
never sized less than 28 pts (more as a discipline for myself to minimize text);
almost never use articles (except in quotations, which I also edit heavily, using ellipsis); and
almost always use images to "emotionally anchor" (or graphically explain) what I'm trying to convey.
Combined with *sparing* use of appropriate video and audio, I find this approach has been able to keep 100+ college freshmen awake and reasonably attentive for 10 weeks of an 8am course.
Joy said:
Great post! I love seeing the really good presentations that are simple and to-the-point. I was wondering if you have any suggestions for when you are limited by a standard template you have to use as part of company policy.
Zach said:
Joy, I read one presentation guru who argued that it is foolishness to paste the company logo on each and every slide. It isn't as if the audience has forgotten who is giving the presentation two slides in. With that in mind, one idea is to use the standard template for the title page, then go with blank/all white slide masters when you want need more area for content. Likewise, use images that take up the full slide. You are still using the template, it is just getting covered up by your content.
David Gerbino said:
Zach,
I am the brand police and I could not agree with you more. However, in my roll as "the brand police" I did have concessions to make with the powers that be. Having said that, we have opened up our corporate templates to increase screen real estate as compared to what the branding agency created. Over time, the "logo" on every page will shrink and ultimately disappear.
Thank you for this very important piece on presentations. You do Edward Tufte proud.
jlori said:
Great.
Joy said:
Thanks so much Zach and David for great insights! I hope to be able to tell our story without all the brand stuff taking up 20-30% of the slide!
Adrian Cherry said:
Another great post, w.r.t. point 7 please support the cause!
http://bancomicsans.com/about.html
Add a comment
Analytics Roundup: TIps for showing, sharing, communicating
By Chris Gemignani
December 6, 2007
Find more about:
Business_Intelligence
analytics
business
charts
excel
google
graphics
graphs
powerpoint
presentation
- Developer's Guide - Google Chart API - Google Code
- Beautiful stuff, particularly the Venn diagram.
- Align Journal - BI Worst Practices
- We often see articles on BI "Best Practices" here is an article telling us what NOT to do.
- flot - Google Code
- Attractive Javascript plotting for jQuery.
- ongoing · On Communication
- Interesting blog post about how different forms of communication rank for immediacy, lifespan, and audience reached.
- The Excel Magician: 70+ Excel Tips and Shortcuts to help you make Excel Magic : Codswallop
- SlideShare
- Source for presentation ideas.
Introducing Chart Chooser
By Zach Gemignani
November 20, 2007
Find more about:
charts
excel
powerpoint
tools
Find and Download Great-Looking Excel and PowerPoint Charts
Chart Chooser is an online tool that answers two questions we commonly get:
- What type of chart should I use to show my data?
- How can I make good looking Excel or PowerPoint charts?
Chart Chooser is easy:
- Check the boxes on the left that best describe your objective
- Select the chart that you want to use
- Choose from Excel or PowerPoint downloads to get a formatted chart template
A few notes about Chart Chooser:
- Thanks to Andrew Abela of Extreme Presentations for inspiring Chart Chooser with his “Choosing a Good Chart” post and for working with us to put this tool together.
- We’ve tried to make the charts both Tufte-compliant (i.e. minimal chart-junk) and visually attractive (thanks to Google for the color scheme).
- Feel free to suggest other types of charts that you’d like to see in the Chart Chooser. Send an example to chartchooser@juiceanalytics.com.
- If you’d like a customized version of Chart Chooser for your organization, write us at chartchooser@juiceanalytics.com or call me at 202.251.7750.
24 comments | Show all comments only the last 5 are shown
Clint said:
Not bad for a v1 guys - I especially like the waterfall chart as a funnel visualization. The comparative column and bar charts seem a bit noisy though - might be as simple as using thicker bars and columns, then again might not.
aaron said:
very cool!
why did you exclude the basic line chart from the 'relationship' category but include the two-axis line-column chart?
Chris Gemignani said:
Clint: Sounds like someone's volunteering...
Aaron: In my experience, the basic line charts are used to show the performance a bunch of similar series over time. The line-column is typically used in business to show two aspects of the same thing over time, sort of like showing prices and volumes in stock charts.
MikeW said:
Excellent tool, thanks guys! I've sent it round the office so now everyone can create clear, uncluttered charts. RIP grey background!
grossu said:
Awesome. It would be great if you add Numbers for ac format for uploading.
Tony said:
Guys, great tool much like the Chart Cleaner! I also understand that you aren't going to be able to please everyone.
The good: Excel downloads that show the table templates (specifically for the waterfall chart, which many people have trouble with), color schemes and formating are excellent, interactive selecting is great, inclusion of bullet charts and pushing less chartjunk is a big plus.
Opportunity: I see some downfalls with the options that are presented to me. Much like some of the dashboard tools, it gives me the option of what's available, but does not indicate what is optimal. For example, by selecting Composition, I get everything from bar charts to waterfall charts, to pie charts, to tables. It may be helpful to possibly rank which are the most effective. Why use a pie chart when a bar chart is a better choice. Or, use a stacked bar chart (I find very ineffective) when a line graph is probably better.
I think the objective here is to show what's possible and appeal to the masses. I just question your design when you have previously voiced that some of these break the fundamental rules of data visualization (pie charts).
Jesse Robbins said:
Outstanding work!
Joe said:
This is awesome! Great time saver. Thanks for the great posts and tips.
zaxl said:
Great tool! With Chart Cleaner you open mi mind to a whole new world of graphics. This is an excel-ent addition to my arsenal. Many thanks!
govi said:
Great!
Using it right now for my scorecards!
arun said:
I really appreciate your work... the charts are really cool... I am going to use them at work... thanks guys
Ed O'Loughlin said:
I'm sure it's a great tool, but http://chartchooser.juiceanalytics.com/ makes Firefox on XP fall over.
Stef said:
Hmmm... is it only available for US users? Doesn't work from my place - Switzerland. Neither in Safari nor in Firefox. Just some kind of legal note appears...
Chris Gemignani said:
Stef: The problems you're having relate the DNS propagation. We only set up the chartchooser.juiceanalytics.com address earlier this week and it takes a while for all the far corners of the Internet to know about that address. Not that Switzerland is that far away these days.
If you wait a few days, it should work for you.
Ed: I'll give it a try on Firefox with XP.
Michael Vu said:
thank you for this! it's going to be very, very useful for entrepreneurs and business owners.
Kelly O'Day said:
Nice job!
The line chart uses a legend to identify the 4 data series in the example. Legends add an extra step for chart readers, they have to move their eye back and forth between the lines and the legend. This can interfere with quick, easy chart interpretation.
Why not use series labels to make it easier for the reader? I've modified your line chart file to add a procedure which adds series labels instead of the legend.
You can see it <ahref="http://processtrends.com/toc_chart_doctor.htm#Replace_Legend_with_Series_labels"> here</a>.
Kelly
Kelly O'Day said:
Here's the link again. It didn't work when I used <a href="... <.a>
http://processtrends.com/toc_chart_doctor.htm#Replace_Legend_with_Series_labels
Tony said:
Kelly - Nice job! The link in your post above didn't work, so I just went to your site to find the example. I am a big fan of your changes. I would always opt for series labels versus a legend. They take up less space and make it more visually appealing.
Kelly O'Day said:
This is my 3rd and hopefully final try at getting the link to work.
http://processtrends.com/toc_chart_doctor.htm
Stef said:
Hey there, the website is still not visible from Switzerland! Gush....
Mike said:
Hi guys!
This is fu&%$ awesome! Thank you very much for this!
Tom said:
I love your site and have used several graphs to make myself 'look good' at work. Thanks.
I want to use the Waterfall chart but for the life of me I can not figure out how you remove/hide the color fill from the data points after the first one and leave it in for this one.
Thanks.
Priya said:
Hey thanks for this useful site... I was wondering if there is a write up for different type of charts displayed here, as in what type of data or steps / FAQs etc.
If I am missing something here, let me know
Sowani said:
Thank you for your charts very innovative.
MBA student
Add a comment
Analytics Roundup: Collaboration and Presentation
By Chris Gemignani
November 19, 2007
Find more about:
BPM
powerpoint
presentations
software
- Death by PowerPoint » SlideShare
- Quick inspiration for great presentations.
- Role Modellers - Home
- Software to manage human collaborative work via a workflow motif. Driven by Human Interaction Management.
Earlier writing





6 comments | Show all comments only the last 5 are shown
Ron said:
I'm wondering if you perhaps overcomplicated the solution. We were able to simply automate PowerPoint presentations by creating all of the tables & charts in Excel and linking those to the PowerPoint slides. Then it's just a matter of updating the source data behind the charts/tables in Excel using formulas/vba and then refreshing the links to PowerPoint.
Zach said:
Certainly that is a viable approach for some circumstances. Our clients typically don't want to deal with the embedding of Excel charts. Reasons include: too much sensitive data travels with the presentation; Excel charts can get hinky looking when embedded (at least in 2003); files size gets too large. They want a fully self-contained PPT file.
Ron said:
True, but once the presentation has been generated, you can simply break all of the links giving you that self-contained file. Obviously the downside to this is that it makes editing the embedded chart impossible from a user-perspective since it is now a picture. For us, that wasn't a deal-breaker although I could see how that could be for others.
Chris said:
I tried this once myself to automate reports and it is much harder than it seems.
But really, did you have to write "adds coloration"?
BVE said:
Interesting approach. I simply use the 'camera' tool in excel to create images of the charts, data, etc and essentially build the presentation slides in excel as impages, then using vba transfer them to ppt.
I converted what others were spending a day and a half doing into a trivial task taking seconds - the result was a seriously bloated and slow (to recalc) template - but have saved several hours in the process.
I'll have to look into the other ideas presented above.
BTW - was the u-tube video supposed to have audio? It didn't really do much to sell the approach.
Dan Victor said:
E-Tabs (www.e-tabs.com) have some very cool software for automating powerpoint charts directly from excel source data files, and without any need for vba programming. You can pull data into any pre-existing powerpoint template, and all charts and tables remain editable objects too!
said:
Add a comment