Hội thảo Python PPT từ Shivam Gupta
Đăng ký tên nổi tiếng nhất để đào tạo trăn ở pune – 3ri Technologies. python đã trở thành ngôn ngữ phổ biến nhất vì có nhu cầu lớn đối với các chuyên gia về python. chúng tôi đã thiết kế khóa đào tạo python theo tiêu chuẩn thị trường, nhằm đáp ứng nhu cầu của ngành. chúng tôi cũng được coi là học viện đào tạo trăn tốt nhất ở pune do chương trình giảng dạy khóa học chất lượng chưa từng có và các huấn luyện viên giàu kinh nghiệm và được đánh giá cao của chúng tôi. giảng viên của chúng tôi được chứng nhận, những người có kinh nghiệm trong ngành. python là mã nguồn mở, ngôn ngữ dễ học. nó có các thư viện mạnh mẽ để phát triển web, tự động hóa và phân tích dữ liệu. python là ngôn ngữ lập trình cấp cao với thư viện mạnh mẽ và cú pháp rõ ràng. khóa học của chúng tôi lý tưởng cho các nhà phát triển web, nhà phát triển phần mềm, nhà phát triển hadoop, v.v. những người muốn vượt trội trong sự nghiệp của họ. python đã tăng khả năng thâm nhập thị trường theo cấp số nhân khi được google chấp nhận. khóa đào tạo python của chúng tôi được chuẩn bị cho những người mới và có kinh nghiệm hơn và chúng tôi đảm bảo rằng chúng tôi cung cấp những hiểu biết sâu sắc về ngôn ngữ python
Thích hay không thích, PowerPoint được sử dụng rộng rãi trong hầu hết các môi trường 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ố công việc cực nhọc của PowerPoint bằng cách tự động tạo trang trình bày PowerPoint bằng cách sử dụng python
Thật 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 lại rất tốt 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 thành phần và bố cục chính khác nhau. Khi bạn hiểu những điều cơ bản, việc tự động tạo các trang chiếu PowerPoint của riêng bạn tương đối đơn giản. Bài viết này sẽ hướng dẫn một ví dụ về đọc và phân tích một số dữ liệu Excel bằng gấu trúc, tạo bảng và xây dựng biểu đồ có thể được nhúng trong tệp PowerPoint.
Thông tin cơ bản về tệp PowerPoint
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ẫ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 của 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 của mình.
Trước khi đi sâu 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 trang trình bày và trình giữ chỗ. Trong các hình ảnh bên dưới, bạn có thể xem ví dụ về hai bố cục khác nhau cũng như trình giữ chỗ của mẫu nơi bạn có thể điền nội dung của mình
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 trang trình bày tại chỉ mục 1
Trong hình ảnh này, chúng tôi sử dụng Bố cục 1 để có giao diện hoàn toàn khác
Để 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 một tập lệnh độc lập đơn giản lấy một mẫu và đánh dấu mẫu đó bằng các phần tử khác nhau
Tôi sẽ không giải thích tất cả từng dòng mã nhưng bạn có thể xem phân tích_ppt. py trên github. Đây là chức năng thực hiện phần lớn 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]
Quy trình cơ bản của chức năng này là lặp lại 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 qua tất cả các trình giữ chỗ có trong mẫu và hiển thị chỉ mục của trình giữ chỗ cũng như loại
Nếu bạn muốn tự mình thử
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 nhận được
Tạo PowerPoint của riêng bạn
Đối với tập dữ liệu và phân tích, tôi sẽ sao chép phân tích trong Tạo Báo cáo Excel từ Bảng Pivot Pandas. Bài viết giải thích chi tiết hơn về thao tác xử lý dữ liệu pandas, vì vậy sẽ rất hữu ích nếu bạn đảm bảo rằng bạn cảm thấy thoải mái với nó trước khi tìm hiểu sâu hơn về mã
Hãy bắt đầu với thông tin đầu vào và trình bao cơ bản của chương trình
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 các đối số dòng lệnh của mình, chúng tôi đọc tệp Excel nguồn vào DataFrame của 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 dữ liệu
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 Tạo báo cáo Excel từ Bảng tổng hợp Pandas nếu điều này không hợp lý với bạn
Phần tiếp theo của phân tích là tạo biểu đồ thanh đơn giản về hiệu suất bán hàng theo 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]
Đây là phiên bản thu nhỏ của hình ảnh
Chúng tôi có một biểu đồ và một bảng tổng hợp đã hoàn thành. Bây giờ, chúng ta sẽ nhúng thông tin đó vào tệp PowerPoint mới dựa trên tệp mẫu PowerPoint đã cho
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ạn muốn sử dụng bố cục nào cũng như nơi bạn muốn đưa nội dung của mình vào. Khi xem kết quả của analyze_ppt.py
, chúng tôi biết rằng trang trình bày tiêu đề có bố cục 0 và nó có thuộc tính tiêu đề và tiêu đề phụ ở trình giữ chỗ 1
Đây là phần bắt đầu của hàm mà chúng tôi sử dụng để tạo đầu ra 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 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 trang chiếu và điền tiêu đề và phụ đề vào trang chiếu. Có vẻ như thế này
Khá tuyệt phải không?
Bước tiếp theo là nhúng ảnh của chúng ta vào một trang chiếu
Từ phân tích trước của chúng tôi, chúng tôi biết rằng slide biểu đồ mà chúng tôi muốn sử dụng là chỉ mục bố cục 8, vì vậy chúng tôi tạo một slide mới, thêm tiêu đề rồi thêm ảnh vào trình giữ chỗ 1. Bước cuối cùng thêm phụ đề vào trình giữ chỗ 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à kiệt tác của chúng tôi
Đối với phần cuối cùng của bản trình bày, chúng ta sẽ tạo một bảng cho từng người quản lý về hiệu suất bán hàng của họ
Đây là hình ảnh về những gì chúng ta sẽ đạt được
Tạo bảng trong PowerPoint là một tin tốt / tin xấu. Tin tốt là có một API để tạo một. Tin xấu là bạn không thể dễ dàng chuyển đổi DataFrame của pandas thành bảng bằng cách sử dụng API tích hợp sẵn. 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.
Đoạn mã tuyệt vời này lấy một DataFrame và chuyển đổi nó thành một bảng tương thích với PowerPoint. Tôi đã tự do đưa một phần của nó vào kịch bản của mình. 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 bạn nên kiểm tra repo và sử dụng nó trong 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 từng người quản lý ra khỏi bảng tổng hợp và xây dựng một DataFrame đơ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.ppt0 để chuyển đổi Khung dữ liệu thành bảng tương thích với PowerPoint
Nếu bạn muốn tự chạy mã này, mã đầy đủ sẽ giống như thế 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 lưu trữ github
Phần kết luận
Một trong những điều tôi thực sự thích khi 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 ngạc nhiên về hệ sinh thái phong phú của các công cụ python được suy nghĩ rất kỹ đã có sẵn để trợ giúp các vấn đề của tôi. Trong trường hợp cụ thể này, PowerPoint hiếm khi thú vị khi sử dụng nhưng nó là một thứ cần thiết trong nhiều 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 một loạt 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 ra cách tự động hóa một số công việc tẻ nhạt hay không