Apogee Tableau script: STORYBUILDER puts PowerPoint in its Place!

Apogee Tableau script: STORYBUILDER puts PowerPoint in its Place!
Posted: July 8, 2020 by
Rodolfo Fiorini
  Story Builder Graphic


Have you ever struggled during a presentation switching between PowerPoint and Tableau? Public speaking and presenting complex data is challenging enough without also having to juggle multiple presentation applications. 

The current workaround: Tableau allows you to export a workbook as a static PowerPoint presentation.  This is helpful, but sacrifices live data and the interactivity features that makes Tableau so valuable.

How can a presenter confidently present from a single application that provides a presenter to move seamlessly between static and dynamic content and would stay current as new data became available.


Instead of exporting a Tableau workbook into non-interactive PowerPoint, what if you could import PowerPoint slides into Tableau? This would combine static PowerPoint slides and dynamic Tableau visualizations into one interactive Tableau Story.  The best of both worlds. 

To make this dream a reality, we’ve developed a script at Apogee to create Tableau workbooks incorporating a folder of images into a Tableau Story. Simply export the slides you wish to use from PowerPoint as image files, run the script and then open the resulting Tableau workbook. You can then merge with other Tableau content to create your combined presentation. The script is not limited to PowerPoint slides. It will work with any folder containing a mix of JPEG or PNG files, silently ignoring other types of files.

We call the project StoryBuilder, but the Python script itself is image2twb.py and is available for download at https://github.com/ApogeeIntegration/Tableau-Utilities/tree/master/storyBuilder

If you are in a MS Windows environment and prefer an executable to a Python script, there is a windows executable version at https://github.com/ApogeeIntegration/Tableau-Utilities/releases

Moving from PowerPoint to Tableau in Two Easy Steps

  1. In PowerPoint, select the slides you wish to include, and then choose the Export command from the File menu. You can use either JPEG or PNG format.

  2. Run the script image2twb.py from a command window using Python3. The script requires two arguments to specify the folder containing the images and the workbook to create. Stating the twb suffix for the output file is optional; the script adds the suffix if it is omitted. The script also accepts optional arguments to specify image sizes or to open the generated workbook in Tableau.

​“-f”, “—fixed” height width

Create dashboards and story at the specified size. Defaults to automatic.

“-o”, “—open”

Launches Tableau to open the generated workbook

“-r”, “—replace”

Replace an existing Tableau workbook if it exists. By default, the script will stop if the file already exists to avoid accidently overwriting a file.

python3 image2twb.py image_path file.twb [-f height width] [-o]

If you are in a Windows environment, you may find it easier to use the image2twb.exe file with the same arguments, to avoid having to configure Python.

Parting Thoughts

If you change a slide, you only need to export that slide again to replace the original exported image. You don’t need to rerun the script in that case. The change will be visible the next time you open your workbook, as Tableau often caches static images. The generated Tableau workbook does not copy the images, just references them by their folder location.

It would be nice if we could package this functionality as a PowerPoint add-in so people could export a Tableau workbook directly from PowerPoint. Unfortunately, Microsoft apparently stopped work on the APIs for Office Add-ins just as they reached the PowerPoint section. Hopefully, Microsoft will add more PowerPoint support to their API in the future.

We also created a VBA early version of this script that can be invoked from within PowerPoint but decided to focus on the Python version. Our reasoning was that if a user was at a site that made executing Python scripts difficult, they are also likely have difficulty enabling a VBA script.

Feedback Welcome!

We’d love to know if this script helped you or to hear suggestions for improvement or enhancements.  Please reach out to us at dataviz@apogeeintegration.com.

​Happy Story Telling!


I’d like to thank: Alex Blakemore for his thoughtful guidance and sharing his extensive experience with Tableau in the creation of this utility; Domenik Albanese who pioneered the initial version of this capability; Sara Carlin for the artwork; and Michael Harmon for git and turning Python into a Windows executable support.

Rodolfo Fiorini

July 8, 2020

Apogee Integration, LLC (APOGEE) focuses on Enterprise Engineering & Data Science supporting U.S. defense and national security clients and is a Tableau Services Partner.  Out experienced certified engineers, analysts, developers, system architects and data scientists love helping clients discover the messages in their data and solve their mission critical problems. Email dataviz@apogeeintegration.com to start a dialog on how APOGEE might assist your project.  To learn more about careers: Become an APOGEE-nius

Keep up with the APOGEE-niuses.