con un clic
presentation-editor
Create, read, and modify PowerPoint (.pptx) presentations. Use when the user wants to build or edit slide decks, add charts, images, tables, or formatted text to presentations.
Menú
Create, read, and modify PowerPoint (.pptx) presentations. Use when the user wants to build or edit slide decks, add charts, images, tables, or formatted text to presentations.
Search the web for information. Use when you need to find current information, research topics, or fetch web content.
Fetch web pages and convert HTML to clean Markdown. Use when you need to read article content, documentation, or any web page as structured text.
Create, read, and modify Word (.docx) and Excel (.xlsx/.xls) documents. Use when the user wants to work with office documents.
Conversational task management and automation control. Use when the user wants to create, manage, monitor, or query scheduled tasks and background jobs via natural language.
Analyze code structure and quality. Use when reviewing code for bugs, anti-patterns, security issues, or best practices.
Process and analyze structured data. Use when working with CSV, JSON, or other structured data formats for transformation, filtering, or analysis.
| name | presentation-editor |
| description | Create, read, and modify PowerPoint (.pptx) presentations. Use when the user wants to build or edit slide decks, add charts, images, tables, or formatted text to presentations. |
| category | document-processing |
| tags | powerpoint, pptx, presentation, slides, office, charts, tables |
| required_tools | execute_python, read_file, write_file |
This skill enables you to create and manipulate Microsoft PowerPoint (.pptx) presentations using the python-pptx library.
Use this skill when:
execute_python with python-pptx code.pptx filefrom pptx import Presentation
from pptx.util import Inches, Pt
prs = Presentation()
# Use a built-in slide layout (0 = title slide, 1 = title+content, etc.)
slide_layout = prs.slide_layouts[0]
slide = prs.slides.add_slide(slide_layout)
# Set title and subtitle
title = slide.shapes.title
subtitle = slide.placeholders[1]
title.text = "My Presentation"
subtitle.text = "Created with python-pptx"
prs.save("output.pptx")
print("Saved: output.pptx")
from pptx import Presentation
prs = Presentation("input.pptx")
print(f"Slides: {len(prs.slides)}")
for i, slide in enumerate(prs.slides):
print(f"\n--- Slide {i + 1} ---")
for shape in slide.shapes:
if shape.has_text_frame:
for para in shape.text_frame.paragraphs:
print(para.text)
if shape.has_table:
tbl = shape.table
for row in tbl.rows:
print([cell.text for cell in row.cells])
# Speaker notes
if slide.has_notes_slide:
notes = slide.notes_slide.notes_text_frame.text
if notes.strip():
print(f"Notes: {notes}")
from pptx import Presentation
from pptx.util import Pt
prs = Presentation("existing.pptx")
# layout index 1 is typically "Title and Content"
layout = prs.slide_layouts[1]
slide = prs.slides.add_slide(layout)
slide.shapes.title.text = "Key Points"
tf = slide.placeholders[1].text_frame
tf.text = "First bullet point"
p = tf.add_paragraph()
p.text = "Second bullet point"
p.level = 1 # sub-bullet
p2 = tf.add_paragraph()
p2.text = "Third bullet point"
prs.save("existing.pptx")
print("Updated presentation saved.")
from pptx import Presentation
from pptx.util import Inches
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[5]) # Blank layout
rows, cols = 4, 3
left, top, width, height = Inches(1), Inches(2), Inches(8), Inches(3)
table = slide.shapes.add_table(rows, cols, left, top, width, height).table
# Header row
headers = ["Name", "Score", "Grade"]
for col_idx, header in enumerate(headers):
table.cell(0, col_idx).text = header
# Data rows
data = [
("Alice", "92", "A"),
("Bob", "78", "B"),
("Carol", "85", "B+"),
]
for row_idx, (name, score, grade) in enumerate(data, start=1):
table.cell(row_idx, 0).text = name
table.cell(row_idx, 1).text = score
table.cell(row_idx, 2).text = grade
prs.save("table_slide.pptx")
print("Saved: table_slide.pptx")
from pptx import Presentation
from pptx.util import Inches
from pptx.chart.data import ChartData
from pptx.enum.chart import XL_CHART_TYPE
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[5])
chart_data = ChartData()
chart_data.categories = ["Q1", "Q2", "Q3", "Q4"]
chart_data.add_series("Revenue", (120, 145, 132, 178))
left, top, width, height = Inches(1), Inches(1.5), Inches(8), Inches(5)
slide.shapes.add_chart(
XL_CHART_TYPE.BAR_CLUSTERED,
left, top, width, height,
chart_data
)
prs.save("chart_slide.pptx")
print("Saved: chart_slide.pptx")
from pptx import Presentation
from pptx.util import Inches
prs = Presentation()
slide = prs.slides.add_slide(prs.slide_layouts[5])
# img_path must be accessible on the device filesystem
img_path = "/path/to/image.png"
slide.shapes.add_picture(img_path, Inches(1), Inches(1), width=Inches(6))
prs.save("image_slide.pptx")
print("Saved: image_slide.pptx")
| Index | Name |
|---|---|
| 0 | Title Slide |
| 1 | Title and Content |
| 2 | Title and Two Content |
| 3 | Title Only |
| 4 | Blank |
| 5 | Content with Caption |
| 6 | Picture with Caption |
Note: Layout indices can vary with the theme. Inspect
prs.slide_layoutsto confirm.
User: "Create a 3-slide summary presentation about our Q1 results"
Your approach:
Presentation()User: "Read this .pptx and tell me what's on each slide"
Your approach:
execute_python to open and iterate the presentationUser: "Add a chart slide showing monthly sales to my existing deck"
Your approach:
.pptx with Presentation("file.pptx")slide_layouts[5] (blank) or [1] (title+content)ChartData with month labels and valuesadd_chart() and saveUser: "Generate a slide deck from this data table"
Your approach:
.pptx.pptx format (not legacy .ppt)python-pptx (most common types are available)