Hướng dẫn how do you automate a powerpoint in python? - làm cách nào để bạn tự động hóa một powerpoint trong python?

Giả sử tôi có một danh sách các sinh viên (tên) và các bức ảnh tương ứng của họ, cũng như một số điểm cho học sinh. Làm thế nào tôi có thể chèn ảnh mong muốn của học sinh làm hình ảnh nền cho một số hoặc tất cả các slide, chèn tên của họ chỉ trên slide tiêu đề và chèn điểm của chúng trên các slide được chọn?

Làm thế nào tôi nên đi về điều này trong Python nếu tôi muốn chỉnh sửa một mẫu cơ sở PowerPoint cho mỗi học sinh với thông tin tương ứng của họ?

hỏi ngày 5 tháng 3 lúc 4:13Mar 5 at 4:13

Hướng dẫn how do you automate a powerpoint in python? - làm cách nào để bạn tự động hóa một powerpoint trong python?

3

Bạn có thể sử dụng thư viện Python-PPTX. Đây là một thư viện Python để tạo và cập nhật các tệp PowerPoint (.pptx).

Điêu nay bao gôm:

Trip Trip bất kỳ bản trình bày XML mở nào (tệp .pptx) bao gồm tất cả các phần tử của nó thêm các slide điền trang văn bản, ví dụ để tạo một slide đạn thêm hình ảnh để trượt ở vị trí tùy ý và kích thước thêm hộp văn bản vào một slide; Thao tác kích thước phông chữ văn bản và bảng bổ sung đậm vào một slide Thêm hình dạng tự động (ví dụ: đa giác, hình dạng sơ đồ, v.v.)

Liên kết để tải xuống: https://pypi.org/project/python-pptx/

Liên kết cho tài liệu: https://python-pptx.readthedocs.io/en/latest/

Đã trả lời ngày 5 tháng 3 lúc 5:08Mar 5 at 5:08

Hướng dẫn how do you automate a powerpoint in python? - làm cách nào để bạn tự động hóa một powerpoint trong python?

1

PowerPoint là phần mềm trình bày phổ biến thường được sử dụng cho các chương trình trượt văn phòng và giáo dục. Tạo thuyết trình bằng tay là tốn thời gian. Dự án dựa trên Python này có thể tự động tạo trình bày PowerPoint trong vòng vài phút. Bạn sẽ học cách tạo dự án Python bằng Pycharm và Python phiên bản 3 và triển khai nó cho Microsoft Windows bằng PyInstaller. & NBSP;

Trong dự án này tự động hóa đang đạt được bằng cách tìm nạp văn bản từ Wikipedia và hình ảnh từ mô -đun Công cụ Tìm kiếm Microsoft Bing. Tạo các loại slide khác nhau bằng cách sử dụng các hàm tùy chỉnh và sau đó hợp nhất chúng lại với nhau để tạo tệp .pptx. Sau này bạn có thể sửa đổi chúng và sử dụng chúng theo yêu cầu của bạn.

Các chức năng tùy chỉnh sẽ tạo ra các slide đạn, slide hình ảnh, slide tiêu đề, kết thúc slide và nhiều hơn nữa.

Chúng tôi sẽ tạo ra dự án này từ đầu và xây dựng nó từng bước.

Bàn thắng

  • Bằng cách tham gia khóa học này, bạn sẽ học được nhiều kỹ năng quản lý thời gian và logic toán học đằng sau tự động hóa. Bạn có thể sử dụng các kỹ năng này để tự động hóa những thứ khác bằng cách viết một vài dòng mã. Tất cả các chức năng và chương trình đều mô -đun và có thể được sử dụng trong các dự án mới. Sau khi mua khóa học này, bạn sẽ có quyền truy cập vào mã nguồn đầy đủ. Cập nhật trọn đời cho khóa học này được bao gồm để thuận tiện cho bạn.

Điều kiện tiên quyết

  • Bạn phải có một máy tính có kết nối internet
  • Bạn phải có sự hiểu biết cơ bản về ngôn ngữ lập trình Python

Giới thiệu

Yêu nó hoặc ghê tởm nó, PowerPoint được sử dụng rộng rãi trong hầu hết các cài đặt kinh doanh. Bài viết này sẽ không tranh luận về giá trị của PowerPoint nhưng sẽ chỉ cho bạn cách sử dụng Python để loại bỏ một số sự quyết liệt của PowerPoint bằng cách tự động tạo ra các slide PowerPoint bằng cách sử dụng & nbsp; Python.

May mắn cho chúng tôi, có một thư viện Python tuyệt vời để tạo và cập nhật các tệp PowerPoint: Python-PPTX. API được ghi chép rất tốt nên nó khá dễ sử dụng. Phần khó khăn duy nhất là hiểu cấu trúc tài liệu PowerPoint bao gồm các bố cục và yếu tố chính khác nhau. Một khi bạn hiểu những điều cơ bản, việc tự động hóa việc tạo ra các slide PowerPoint của riêng bạn là tương đối đơn giản. Bài viết này sẽ đi qua một ví dụ về việc đọc và phân tích một số dữ liệu excel với gấu trúc, tạo bảng và xây dựng một biểu đồ có thể được nhúng trong tệp PowerPoint & NBSP;API is very well documented so it is pretty easy to use. The only tricky part is understanding the PowerPoint document structure including the various master layouts and elements. Once you understand the basics, it is relatively simple to automate the creation of your own PowerPoint slides. This article will walk through an example of reading in and analyzing some Excel data with pandas, creating tables and building a graph that can be embedded in a PowerPoint file.

Tệp PowerPoint & nbsp; cơ bản

Python-PPTX có thể tạo các tệp PowerPoint trống nhưng hầu hết mọi người sẽ thích làm việc với một mẫu được xác định trước mà bạn có thể tùy chỉnh với nội dung của riêng mình. API Python-PPTX, hỗ trợ quá trình này khá đơn giản miễn là bạn biết một vài điều về mẫu & NBSP của bạn.API supports this process quite simply as long as you know a few things about your template.

Trước khi lặn vào một số mẫu mã, có hai thành phần chính bạn cần hiểu: bố cục trượt và giữ chỗ. Trong các hình ảnh dưới đây, bạn có thể thấy một ví dụ về hai bố cục khác nhau cũng như các trình giữ chỗ mẫu, nơi bạn có thể điền vào nội dung & NBSP của mình.Slide Layouts and Placeholders. In the images below you can see an example of two different layouts as well as the template’s placeholders where you can populate your content.

Trong hình ảnh bên dưới, bạn có thể thấy rằng chúng tôi đang sử dụng Bố cục 0 và có một trình giữ chỗ trên slide tại Index & NBSP; 1.

Hướng dẫn how do you automate a powerpoint in python? - làm cách nào để bạn tự động hóa một powerpoint trong python?

Trong hình ảnh này, chúng tôi sử dụng bố cục 1 cho một hoàn toàn khác & nbsp; nhìn.

Hướng dẫn how do you automate a powerpoint in python? - làm cách nào để bạn tự động hóa một powerpoint trong python?

Để làm cho cuộc sống của bạn dễ dàng hơn với các mẫu của riêng bạn, tôi đã tạo ra một tập lệnh độc lập đơn giản lấy một mẫu và đánh dấu nó với các yếu tố khác nhau & nbsp;

Tôi đã giành chiến thắng giải thích tất cả các dòng mã theo từng dòng nhưng bạn có thể thấy Analyze_ppt.py trên GitHub. Đây là chức năng làm phần lớn & nbsp; công việc:

def analyze_ppt(input, output):
    """ Take the input file and analyze the structure.
    The output file contains marked up information to make it easier
    for generating future powerpoint templates.
    """
    prs = Presentation(input)
    # Each powerpoint file has multiple layouts
    # Loop through them all and  see where the various elements are
    for index, _ in enumerate(prs.slide_layouts):
        slide = prs.slides.add_slide(prs.slide_layouts[index])
        # Not every slide has to have a title
        try:
            title = slide.shapes.title
            title.text = 'Title for Layout {}'.format(index)
        except AttributeError:
            print("No Title for Layout {}".format(index))
        # Go through all the placeholders and identify them by index and type
        for shape in slide.placeholders:
            if shape.is_placeholder:
                phf = shape.placeholder_format
                # Do not overwrite the title which is just a special placeholder
                try:
                    if 'Title' not in shape.text:
                        shape.text = 'Placeholder index:{} type:{}'.format(phf.idx, shape.name)
                except AttributeError:
                    print("{} has no text attribute".format(phf.type))
                print('{} {}'.format(phf.idx, shape.name))
    prs.save(output)

Luồng cơ bản của hàm này là lặp qua và tạo một ví dụ về mọi bố cục có trong tệp PowerPoint nguồn. Sau đó, trên mỗi slide, nó sẽ điền tiêu đề (nếu nó tồn tại). Cuối cùng, nó sẽ lặp đi lặp lại thông qua tất cả các trình giữ chỗ được bao gồm trong mẫu và hiển thị chỉ số của trình giữ chỗ cũng như & nbsp; loại.

Nếu bạn muốn thử nó & nbsp; chính bạn:

python analyze_ppt.py simple-template.ppt simple-template-markup.ppt

Tham khảo các tệp đầu vào và đầu ra để xem những gì bạn & nbsp; nhận được.

Tạo của riêng bạn & NBSP; PowerPoint

Đối với bộ dữ liệu và phân tích, tôi sẽ sao chép phân tích trong việc tạo các báo cáo Excel từ bảng Pivot Pivot. Bài báo giải thích các thao tác dữ liệu của gấu trúc chi tiết hơn, vì vậy sẽ rất hữu ích để đảm bảo bạn cảm thấy thoải mái với nó trước khi đi sâu hơn nhiều vào mã & nbsp;

Hãy để mọi thứ bắt đầu với các đầu vào và vỏ cơ bản của chương trình & nbsp;

from __future__ import print_function
from pptx import Presentation
from pptx.util import Inches
import argparse
import pandas as pd
import numpy as np
from datetime import date
import matplotlib.pyplot as plt
import seaborn as sns

# Functions go here

if __name__ == "__main__":
    args = parse_args()
    df = pd.read_excel(args.report.name)
    report_data = create_pivot(df)
    create_chart(df, "report-image.png")
    create_ppt(args.infile.name, args.outfile.name, report_data, "report-image.png")

Sau khi chúng tôi tạo dòng lệnh ARG của chúng tôi, chúng tôi đọc tệp excel nguồn vào một bản dữ liệu gấu trúc. Tiếp theo, chúng tôi sử dụng DataFrame đó làm đầu vào để tạo bản tóm tắt pivot_table của & nbsp; data:

def create_pivot(df, index_list=["Manager", "Rep", "Product"],
                 value_list=["Price", "Quantity"]):
    """
    Take a DataFrame and create a pivot table
    Return it as a DataFrame pivot table
    """
    table = pd.pivot_table(df, index=index_list,
                           values=value_list,
                           aggfunc=[np.sum, np.mean], fill_value=0)
    return table

Tham khảo các báo cáo tạo excel từ bảng trục gấu nếu điều này không có ý nghĩa với & nbsp; bạn.

Phần tiếp theo của phân tích là tạo ra một biểu đồ thanh đơn giản về hiệu suất bán hàng bởi & nbsp; tài khoản:

def create_chart(df, filename):
    """ Create a simple bar chart saved to the filename based on the dataframe
    passed to the function
    """
    df['total'] = df['Quantity'] * df['Price']
    final_plot = df.groupby('Name')['total'].sum().order().plot(kind='barh')
    fig = final_plot.get_figure()
    # Size is the same as the PowerPoint placeholder
    fig.set_size_inches(6, 4.5)
    fig.savefig(filename, bbox_inches='tight', dpi=600)

Dưới đây là phiên bản thu nhỏ của & nbsp; hình ảnh:

Hướng dẫn how do you automate a powerpoint in python? - làm cách nào để bạn tự động hóa một powerpoint trong python?

Chúng tôi có một biểu đồ và một bảng trục hoàn thành. Bây giờ chúng tôi sẽ nhúng thông tin đó vào một tệp PowerPoint mới dựa trên tệp PowerPoint đã cho & NBSP; tệp.

Trước khi tôi đi xa hơn, có một vài điều cần lưu ý. Bạn cần biết bố cục nào bạn muốn sử dụng cũng như nơi bạn muốn điền vào nội dung của mình. Khi nhìn vào đầu ra của analyze_ppt.py, chúng ta biết rằng slide tiêu đề là bố cục 0 và nó có thuộc tính tiêu đề và phụ đề ở trình giữ chỗ & nbsp; 1.

Dưới đây là sự khởi đầu của chức năng mà chúng tôi sử dụng để tạo đầu ra & nbsp; powerpoint:

def create_ppt(input, output, report_data, chart):
    """ Take the input powerpoint file and use it as the template for the output
    file.
    """
    prs = Presentation(input)
    # Use the output from analyze_ppt to understand which layouts and placeholders
    # to use
    # Create a title slide first
    title_slide_layout = prs.slide_layouts[0]
    slide = prs.slides.add_slide(title_slide_layout)
    title = slide.shapes.title
    subtitle = slide.placeholders[1]
    title.text = "Quarterly Report"
    subtitle.text = "Generated on {:%m-%d-%Y}".format(date.today())

Mã này tạo ra một bản trình bày mới dựa trên tệp đầu vào của chúng tôi, thêm một slide duy nhất và điền tiêu đề và phụ đề trên slide. Nó trông giống như & nbsp; điều này:

Hướng dẫn how do you automate a powerpoint in python? - làm cách nào để bạn tự động hóa một powerpoint trong python?

Khá tuyệt vời & nbsp; hả?

Bước tiếp theo là nhúng hình ảnh của chúng tôi vào A & nbsp; slide.

Từ phân tích trước đây của chúng tôi, chúng tôi biết rằng slide đồ thị chúng tôi muốn sử dụng là Layout Index 8, vì vậy chúng tôi tạo một slide mới, thêm một tiêu đề sau đó thêm hình ảnh vào trình giữ chỗ 1. Bước cuối cùng thêm phụ đề ở trình giữ chỗ & NBSP; 2.

# Create the summary graph
graph_slide_layout = prs.slide_layouts[8]
slide = prs.slides.add_slide(graph_slide_layout)
title = slide.shapes.title
title.text = "Sales by account"
placeholder = slide.placeholders[1]
pic = placeholder.insert_picture(chart)
subtitle = slide.placeholders[2]
subtitle.text = "Results consistent with last quarter"

Đây là & NBSP của chúng tôi;

Hướng dẫn how do you automate a powerpoint in python? - làm cách nào để bạn tự động hóa một powerpoint trong python?

Đối với phần cuối cùng của bài thuyết trình, chúng tôi sẽ tạo một bảng cho mỗi người quản lý với Sales & NBSP; Hiệu suất của họ.

Đây là hình ảnh của những gì chúng tôi sẽ đến & NBSP; đạt được:

Hướng dẫn how do you automate a powerpoint in python? - làm cách nào để bạn tự động hóa một powerpoint trong python?

Tạo bảng trong PowerPoint là một tin tức tốt / tin tức xấu. Tin tốt là có một API để tạo ra một. Tin xấu là bạn có thể dễ dàng chuyển đổi khung dữ liệu gấu trúc thành bảng bằng cách sử dụng API tích hợp trong API. Tuy nhiên, chúng tôi rất may mắn rằng ai đó đã làm tất cả công việc khó khăn cho chúng tôi và tạo ra Pandastopowerpoint.API to create one. The bad news is that you can’t easily convert a pandas DataFrame to a table using the built in API. However, we are very fortunate that someone has already done all the hard work for us and created PandasToPowerPoint.

Phần mã tuyệt vời này lấy một khung dữ liệu và chuyển đổi nó thành bảng tương thích PowerPoint. Tôi đã tự do bao gồm một phần của nó trong kịch bản của tôi. Bản gốc có nhiều chức năng hơn mà tôi không sử dụng vì vậy tôi khuyến khích bạn kiểm tra repo và sử dụng nó trong mã & nbsp; mã của riêng bạn.

# Create a slide for each manager
for manager in report_data.index.get_level_values(0).unique():
    slide = prs.slides.add_slide(prs.slide_layouts[2])
    title = slide.shapes.title
    title.text = "Report for {}".format(manager)
    top = Inches(1.5)
    left = Inches(0.25)
    width = Inches(9.25)
    height = Inches(5.0)
    # Flatten the pivot table by resetting the index
    # Create a table on the slide
    df_to_table(slide, report_data.xs(manager, level=0).reset_index(),
                left, top, width, height)
prs.save(output)

Mã đưa mỗi người quản lý ra khỏi bảng Pivot và xây dựng một khung dữ liệu đơn giản chứa dữ liệu tóm tắt. Sau đó sử dụng

python analyze_ppt.py simple-template.ppt simple-template-markup.ppt
0 để chuyển đổi DataFrame thành bảng tương thích PowerPoint & NBSP;

Nếu bạn muốn tự mình chạy cái này, mã đầy đủ sẽ trông giống như & nbsp; cái này:

python create_ppt.py simple-template.pptx sales-funnel.xlsx myreport.pptx

Tất cả các tệp có liên quan đều có sẵn trong kho GitHub.

Sự kết luận

Một trong những điều tôi thực sự thích về việc sử dụng Python để giải quyết các vấn đề kinh doanh trong thế giới thực là tôi thường xuyên ngạc nhiên về hệ sinh thái phong phú của các công cụ Python được suy nghĩ rất tốt đã có sẵn để giúp đỡ các vấn đề của tôi. Trong trường hợp cụ thể này, PowerPoint hiếm khi là một niềm vui để sử dụng nhưng nó là một điều cần thiết trong nhiều & nbsp; môi trường.

Sau khi đọc bài viết này, bạn nên biết rằng có một số hy vọng cho bạn vào lần tới khi bạn được yêu cầu tạo ra một loạt các báo cáo trong PowerPoint. Hãy ghi nhớ bài viết này và xem liệu bạn có thể tìm cách tự động hóa một số & nbsp; tedium!

Bạn có thể tự động hóa PowerPoint với Python không?

PowerPoint là phần mềm trình bày phổ biến thường được sử dụng cho các chương trình trượt văn phòng và giáo dục. Tạo thuyết trình bằng tay là tốn thời gian. Dự án dựa trên Python này có thể tự động tạo trình bày PowerPoint trong vòng vài phút.This python based project can create PowerPoint presentation automatically within few minutes.

Bạn có thể tự động hóa bản trình bày PowerPoint không?

Nếu bạn muốn một trình chiếu tự động chạy tại một ki -ốt, bạn có thể kiểm soát khi nào và cách các slide tiến lên.Để làm điều này, bạn có thể áp dụng cùng một quá trình chuyển đổi cho tất cả các slide trong bản trình bày và đặt quá trình chuyển đổi để tự động tiến sau một khoảng thời gian nhất định.you can control when and how the slides advance. To do this, you can apply the same transition to all slides in the presentation and set the transition to automatically advance after a certain time interval.

Làm cách nào để tạo PowerPoint bằng Python?

Tạo một bài thuyết trình..
Bố cục = X. slide_layouts [0] first_slide = X. slide.add_slide (bố cục) # Thêm slide đầu tiên ..
FIRST_SLIDE.hình dạng.Tiêu đề.Text = "Tạo PowerPoint bằng Python" First_Slide.Người giữ chỗ [1].....
Đoạn = TextFrame.add_paragraph () đoạn văn.Text = "Đây là một đoạn trong slide thứ hai!".

Làm thế nào để bạn tạo một trình chiếu powerpoint tự động?

Thiết lập một bài thuyết trình tự chạy..
Nhấp vào tab Slide Show trong Ribbon và sau đó nhấp vào Thiết lập Slide Show.Một hộp thoại xuất hiện ..
Trong loại hiển thị, chọn được trình bày bởi loa (toàn màn hình).Đây là cài đặt mặc định cho các chương trình trượt ..
Bấm OK ..