You can automate your weekly PowerPoint reports from Excel data with 10 lines of Python — no manual formatting, no copy-pasting charts, no last-minute slide tweaks. This guide shows two approaches: python-pptx for full control, and SlideForge's API for consulting-quality output in seconds.
The problem: manual report decks
Every Monday morning, someone opens an Excel file, copies numbers into a PowerPoint template, screenshots a chart, pastes it, adjusts the alignment. For a 15-slide weekly report, this takes 1-2 hours. Every week.
Approach 1: python-pptx (free, full control)
import pandas as pd
from pptx import Presentation
from pptx.util import Inches, Pt
df = pd.read_excel("weekly_metrics.xlsx", sheet_name="Summary")
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[6])
txBox = slide.shapes.add_textbox(Inches(1), Inches(2), Inches(10), Inches(2))
txBox.text_frame.text = "Weekly Report"
txBox.text_frame.paragraphs[0].font.size = Pt(36)
# ... 500+ lines for a full 15-slide deck
prs.save("weekly_report.pptx")
This works, but maintaining 500+ lines of layout code is a burden.
Approach 2: SlideForge API (10 lines)
import requests
resp = requests.post(
"https://api.slideforge.dev/v1/render",
headers={"Authorization": "Bearer sf_live_YOUR_KEY"},
json={
"template": "kpi_dashboard",
"params": {
"title": "Week 14 Performance",
"metrics": [
{"value": "$12.4M", "label": "Revenue", "trend": "+18%", "trend_dir": "up"},
{"value": "847", "label": "Clients", "trend": "+23%", "trend_dir": "up"},
],
},
"theme_id": "consulting_blue",
},
)
print(resp.json()["pptx_url"]) # ready in <1s
$0.03 per slide. For a full deck, use the deck endpoint (~3s for 5 slides in parallel).
Scheduling
Cron: 0 7 * * 1 python3 weekly_report.py
GitHub Actions:
on:
schedule:
- cron: '0 7 * * 1'
Also works with Airflow, n8n, and Zapier.
Cost comparison
- python-pptx: Free, 500+ lines, 2-4 hours to build
- SlideForge: $0.03-$0.05/slide = $23-39/year for a 15-slide weekly report
- Manual: 1-2 hours/week = $2,500-5,000/year
Sign up for $3 free credit.
Originally published at slideforge.dev
Top comments (0)