Skip to content
Related Articles

Related Articles

Improve Article

Creating and updating PowerPoint Presentations in Python using python – pptx

  • Last Updated : 18 Aug, 2020
Geek Week

python-pptx is library used to create/edit a PowerPoint (.pptx) files. This won’t work on MS office 2003 and previous versions.  We can add shapes, paragraphs, texts and slides and much more thing using this library.

Installation: Open the command prompt on your system and write given below command:

pip install python-pptx

Let’s see some of its usage:

Example 1: Creating new PowerPoint file with title and subtitle slide.

Python3






# import Presentation class
# from pptx library
from pptx import Presentation     
  
# Creating presentation object
root = Presentation()
  
# Creating slide layout
first_slide_layout = root.slide_layouts[0
  
""" Ref for slide types: 
0 ->  title and subtitle
1 ->  title and content
2 ->  section header
3 ->  two content
4 ->  Comparison
5 ->  Title only 
6 ->  Blank
7 ->  Content with caption
8 ->  Pic with caption
"""
  
# Creating slide object to add 
# in ppt i.e. Attaching slides 
# with Presentation i.e. ppt
slide = root.slides.add_slide(first_slide_layout)
  
# Adding title and subtitle in 
# slide i.e. first page of slide 
slide.shapes.title.text = " Created By python-pptx"
  
# We have different formats of 
# subtitles in ppts, for simple
# subtitle this method should 
# implemented, you can change
# 0 to 1 for different design
slide.placeholders[1].text = " This is 2nd way"
  
# Saving file
root.save("Output.pptx")
  
print("done")

Output:

Adding title and subtitle to the powerpoint

Example 2: Adding Text-Box in PowerPoint.

Python3




# import required things
from pptx import Presentation 
from pptx.util import Inches, Pt
  
# Creating Object
ppt = Presentation() 
  
# To create blank slide layout
# We have to use 6 as an argument
# of slide_layouts  
blank_slide_layout = ppt.slide_layouts[6
  
# Attaching slide obj to slide
slide = ppt.slides.add_slide(blank_slide_layout)
  
# For adjusting the  Margins in inches 
left = top = width = height = Inches(1
  
# creating textBox
txBox = slide.shapes.add_textbox(left, top,
                                 width, height)
  
# creating textFrames
tf = txBox.text_frame
tf.text = "This is text inside a textbox"
  
# adding Paragraphs
p = tf.add_paragraph() 
  
# adding text
p.text = "This is a second paragraph that's bold and italic" 
  
# font 
p.font.bold = True
p.font.italic = True
  
p = tf.add_paragraph()
p.text = "This is a third paragraph that's big " 
p.font.size = Pt(40)
  
# save file
ppt.save('test_2.pptx')
  
print("done")

Output:

Adding text box to the powerpoint

Example 3: PowerPoint (.pptx) file to Text (.txt) file conversion.

Python3






# import Presentation class
# from pptx library
from pptx import Presentation
  
# creating an object
ppt = Presentation("sample.pptx")
  
# open file in write mode
File_to_write_data = open("File_To_Extract_ppt.txt", "w")
  
# write text from powerpoint
# file into .txt file
for slide in ppt.slides: 
    for shape in slide.shapes: 
        if not shape.has_text_frame: 
            continue 
        for paragraph in shape.text_frame.paragraphs: 
            for run in paragraph.runs: 
                File_to_write_data.write(run.text)
  
# close the file               
File_to_write_data.close()
  
print("Done")

Output:

Example 4: Inserting image into the PowerPoint file.

Python3




from pptx import Presentation 
from pptx.util import Inches 
  
# Giving Image path 
img_path = 'bg_bg.png' 
  
# Creating an Presentation object
ppt = Presentation() 
  
# Selecting blank slide
blank_slide_layout = ppt.slide_layouts[6
  
# Attaching slide to ppt
slide = ppt.slides.add_slide(blank_slide_layout) 
  
# For margins
left = top = Inches(1
  
# adding images
pic = slide.shapes.add_picture(img_path,
                               left, top)
  
left = Inches(1
height = Inches(1
  
pic = slide.shapes.add_picture(img_path, left,
                               top, height = height)
# save file
ppt.save('test_4.pptx')
  
print("Done")

Output:

Adding images to the powerpoint

Example 5: Adding Charts to the PowerPoint file.

Python3




# import required classes/functions/method
from pptx import Presentation 
from pptx.chart.data import CategoryChartData 
from pptx.enum.chart import XL_CHART_TYPE 
from pptx.util import Inches
  
  
# Create presentation object
ppt = Presentation() 
  
# Adding slide with specific layout
slide = ppt.slides.add_slide(ppt.slide_layouts[6])
  
# Define chart data 
# Creating object of chart
chart_data = CategoryChartData() 
  
# Adding categories to chart
chart_data.categories = ['East', 'West', 'Midwest']  
  
# Adding series
chart_data.add_series('Series 1'
                      (int(input("Enter Value:")), 
                        int(input("Enter Value:")),
                        int(input("Enter Value:")))) 
  
x, y, cx, cy = Inches(2), Inches(2), Inches(6), Inches(4.5
  
slide.shapes.add_chart( XL_CHART_TYPE.COLUMN_CLUSTERED, x,
                       y, cx, cy, chart_data )
  
# Saving file
ppt.save('chart-Tutorial.pptx')
  
print("done")

Output:

Adding charts to the powerpoint

Example 6: Adding tables to the PowerPoint file.

Python3




# importing
from pptx import Presentation 
from pptx.util import Inches
  
# create a Presentation object
ppt = Presentation() 
  
# Adding a blank slide in out ppt
slide = ppt.slides.add_slide(ppt.slide_layouts[6])
  
# Adjusting the width !  
x, y, cx, cy = Inches(2), Inches(2), Inches(4), Inches(1.5
  
# Adding tables
shape = slide.shapes.add_table(3, 4, x, 
                               y, cx, cy)
  
# Saving the file
ppt.save("Tabel_Tutorial.pptx")
  
print("done")

Output:

Adding table to the powerpoint

 Attention geek! Strengthen your foundations with the Python Programming Foundation Course and learn the basics.  

To begin with, your interview preparations Enhance your Data Structures concepts with the Python DS Course. And to begin with your Machine Learning Journey, join the Machine Learning – Basic Level Course




My Personal Notes arrow_drop_up
Recommended Articles
Page :