Automate PowerPoint Slides Creation with Python

Boost your Productivity with an Automated Tool for the Creation of Supply Chain Operational PowerPoint Reports with Python.

Automate PowerPoint Slides Creation with Python

Boost your Productivity with an Automated Tool for the Creation of Supply Chain Operational PowerPoint Reports with Python

Article originally published on Medium.

Scenario

You are a distribution planning manager in the logistics department of a fashion retail company.

To perform analysis, you connect to the warehouse management system to extract and process data using an automated tool built with Python.

However, you have to spend time manually putting these visuals in slides for your weekly operational reviews.

Objective

In this article, we will build a solution to automatically create PowerPoint slides with visuals and comments.

Have a look at the video version of this article,

Problem Statement

Scenario

You are part of the distribution planning team of an international clothing retailer with stores on all continents.

Logistics Network — (Image by Author)

Your distribution network includes several local warehouses that replenish the stores.

Monthly Operational Reviews

At the end of the month, you organize an operational review with the store managers to assess the performance of the distribution network.

To animate the discussion you prepare some slides,

  1. Extract data from the Warehouse Management System (WMS)
  2. Process data and built visuals with Python
  3. Prepare a PowerPoint presentation

Objective

To be efficient, you would like to automate the process of PowerPoint deck creation.

Your solution will be fully automated

  • Extract order lines of the last month from the WMS SQL database
  • Process the data and compute KPIs with key insights by week
  • Automatically put the visuals and insights in a PowerPoint presentation
Process in 4 steps — (Image by Author)

Results

The final deck will have slides like the ones below:

  • 5 slides with visuals of the daily workload (left) and 1 slide for the monthly analysis of the order profile (right)
  • A visual generated with Python
  • A comment area will provide insights based on the visual
Final Results — (Image by Author)

Solutions

You can find the source code with dummy data here: Github

Let us explore all the steps to generate your final report with python.

Steps to create your operational report on PowerPoint — (Image by Author)

Data Extraction

Connect to your WMS and extract shipment records

  • Create your SQL Query to extract shipment records
  • Use pandas.read_sql_query to do the query
  • Results will be a pandas data frame

If you don’t have access to a WMS database, you can use the dataset shared in the GitHub repo.

Process the data

Add a column that calculates the number of lines per order using pandas.

Create the visuals

Create a simple bar plot chart that shows the number of Lines and Orders prepared per day.

Bar plot— (Image by Author)
Stacked Bar Plot — (Image by Author)

Save the charts

In order to be added to the PowerPoint, you need to save it locally.

Add comments and insights

You can add comments based on the chart you share that will summarize the performance of each week.

Include these comments under the visuals for more clarity.

Example of comments — (Image by Author)

Create the PowerPoint Decks

We will use the open-source library python-pptx to build our PowerPoint decks.

For more details, have a look at the documentation.

Introduction Slide

We will start with a special introduction slide at the beginning of the presentation.

First Slide — (Image by Author)

Code

Daily Analysis Slide by WEEK

The structure of your slide will be always the same

  • A title on top (e.g: Warehouse Workload (WEEK-5))
  • A picture at the centre of the slide
  • A text box for the comment area
Slide Structure — (Image by Author)

Code

💡 TIPS
You can change the position of the objects by modifying the parameters of Inches() functions.

Weekly Analysis of Order Profile

In this slide, you will use a stacked bar plot chart and the comments will be based on the full month scope.

Order Profile — (Image by Author)

Code

💡 TIPS
You can change the font size by modifying the parameter of the functions Pt().

Finally, you have a PowerPoint file with 7 slides ready to be used for your meetings.

PowerPoint Final — (Image by Author)

Conclusion & Next Steps

Conclusion

With this very simple example, you have a template to build your own PowerPoint automation solution.

You can now,

  • Add visuals, tables or smart visuals of PowerPoint (check the documentation)
  • Bring more insights or enrich the text with conditions

Next Steps

This python script can be launched locally on your computer with one click.

You can also automate the report distribution by email using the SMTP library of python.

For more details, you can have a look at this article I published a few weeks ago,

Automate Operational Reports Distribution in HTML Emails using Python
Automate the distribution of supply chain operational reports with visuals in HTML emails using python.