PowerPoint Manipulation Tool
Programmatically create and edit PowerPoint presentations with text, shapes, charts, and tables.
You need to generate 20 personalized pitch decks for different clients, each with their logo, name, and custom data. Doing this manually in PowerPoint means 20 hours of copy-paste. Doing it programmatically means writing it once and running it 20 times.
Who it's for: sales teams generating personalized client presentations at scale, consultants producing templated deliverables for multiple clients, marketing teams batch-creating event or campaign presentations, data teams building automated report decks from databases, anyone who needs to create or modify many PowerPoint files programmatically
Example
"Generate 15 customized client pitch decks from our template" → Python script using python-pptx that merges client data from your spreadsheet into the template, swaps logos, updates charts with client-specific metrics, and exports 15 individually named PPTX files
CLAUDE.md Template
New here? 3-minute setup guide → | Already set up? Copy the template below.
npx ccplaybooks add pptx-manipulation# PPTX Manipulation
## Overview
This workflow enables programmatic creation, editing, and manipulation of Microsoft PowerPoint (.pptx) presentations using the **python-pptx** library. Create professional slides with text, shapes, images, charts, and tables without manual editing.
## How to Use
1. Describe the presentation you want to create or modify
2. Provide content, data, or images to include
3. I'll generate python-pptx code and execute it
Get new playbooks like this one
One email a week with new Claude Code workflows. Free, like everything here.
No spam. Unsubscribe anytime.
What This Does
This workflow enables programmatic creation, editing, and manipulation of Microsoft PowerPoint (.pptx) presentations using the python-pptx library. Create professional slides with text, shapes, images, charts, and tables without manual editing.
Quick Start
Step 1: Create a Project Folder
mkdir -p ~/Documents/PptxManipulation
Step 2: Download the Template
Click Download above, then:
mv ~/Downloads/CLAUDE.md ~/Documents/PptxManipulation/
Step 3: Start Working
cd ~/Documents/PptxManipulation
claude
How to Use
- Describe the presentation you want to create or modify
- Provide content, data, or images to include
- I'll generate python-pptx code and execute it
Example prompts:
- "Create a 10-slide pitch deck from this outline"
- "Add a chart to slide 3 with this data"
- "Extract all text from this presentation"
- "Generate slides from this markdown content"
Best Practices
- Use Templates: Start with a .pptx template for consistent branding
- Layout First: Plan slide structure before coding
- Reuse Slide Masters: Maintain consistency across presentations
- Optimize Images: Compress images before adding
- Test Output: Always verify generated presentations
Examples
Example 1: Create a Pitch Deck
from pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()
# Slide 1: Title
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = "StartupX"
slide.placeholders[1].text = "Revolutionizing Document Processing"
# Slide 2: Problem
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = "The Problem"
body = slide.placeholders[1].text_frame
body.text = "Manual document processing costs businesses $1T annually"
p = body.add_paragraph()
p.text = "Average worker spends 20% of time on document tasks"
p.level = 1
# Slide 3: Solution
slide = prs.slides.add_slide(prs.slide_layouts[1])
slide.shapes.title.text = "Our Solution"
body = slide.placeholders[1].text_frame
body.text = "AI-powered document automation"
body.add_paragraph().text = "90% faster processing"
body.add_paragraph().text = "99.5% accuracy"
body.add_paragraph().text = "Works with existing tools"
# Slide 4: Market
slide = prs.slides.add_slide(prs.slide_layouts[5]) # Title only
slide.shapes.title.text = "Market Opportunity: $50B by 2028"
# Add chart
from pptx.chart.data import CategoryChartData
from pptx.enum.chart import XL_CHART_TYPE
data = CategoryChartData()
data.categories = ['2024', '2025', '2026', '2027', '2028']
data.add_series('Market Size ($B)', [30, 35, 40, 45, 50])
slide.shapes.add_chart(
XL_CHART_TYPE.LINE,
Inches(1), Inches(1.5),
Inches(8), Inches(5),
data
)
prs.save('pitch_deck.pptx')
Example 2: Report with Data Table
from pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()
# Title slide
slide = prs.slides.add_slide(prs.slide_layouts[0])
slide.shapes.title.text = "Sales Performance Report"
slide.placeholders[1].text = "Q4 2024"
# Data slide
slide = prs.slides.add_slide(prs.slide_layouts[5])
slide.shapes.title.text = "Regional Performance"
# Create table
table = slide.shapes.add_table(5, 4, Inches(0.5), Inches(1.5), Inches(9), Inches(4)).table
# Headers
headers = ['Region', 'Revenue', 'Growth', 'Target']
for i, h in enumerate(headers):
table.cell(0, i).text = h
table.cell(0, i).text_frame.paragraphs[0].font.bold = True
# Data
data = [
['North America', '$5.2M', '+15%', 'Met'],
['Europe', '$3.8M', '+12%', 'Met'],
['Asia Pacific', '$2.9M', '+28%', 'Exceeded'],
['Latin America', '$1.1M', '+8%', 'Below'],
]
for row_idx, row_data in enumerate(data, 1):
for col_idx, value in enumerate(row_data):
table.cell(row_idx, col_idx).text = value
prs.save('sales_report.pptx')
Limitations
- Cannot render complex animations
- Limited SmartArt support
- No video embedding via API
- Master slide editing is complex
- Chart types limited to standard Office charts
Installation
pip install python-pptx