Python-pptx chỉnh sửa slide master

Trong hướng dẫn này, chúng ta sẽ tìm hiểu cách tạo tài liệu PowerPoint theo chương trình từ tập lệnh Python. Để làm như vậy, chúng tôi sẽ sử dụng mô-đun python-pptx, có thể được cài đặt bằng pip bằng lệnh sau

pip install python-pptx

Mô-đun này có một API rất phong phú, không chỉ cho phép tạo tài liệu mới và thêm nội dung mà còn truy cập các tài liệu hiện có và chỉnh sửa chúng. Bạn có thể kiểm tra tài liệu API và trang dự án GitHub tại đây

Các tính năng này có thể hữu ích để tự động hóa theo chương trình một số tác vụ liên quan đến PowerPoint (ví dụ:. tạo báo cáo hàng tuần từ dữ liệu lấy từ cơ sở dữ liệu)

Hướng dẫn này đã được thử nghiệm trên Windows 8. 1, sử dụng Python phiên bản 3. 7. 2 và phiên bản 2010 của Microsoft PowerPoint

Tạo tài liệu PowerPoint

Điều đầu tiên chúng ta sẽ làm là nhập hàm từ mô-đun pptx

from pptx import Presentation

Sau đó, chúng ta sẽ gọi hàm Trình bày mà chúng ta vừa nhập mà không truyền bất kỳ đối số nào. Là đầu ra, hàm này sẽ trả về một đối tượng của lớp

presentation = Presentation()

Bây giờ chúng ta đã có đối tượng Presentation, chúng ta sẽ thêm một slide vào nó. Để thêm một trang chiếu, chúng tôi sẽ cần sử dụng bố cục từ trang chiếu cái. Lưu ý rằng ngay cả khi bạn chưa bao giờ tương tác trực tiếp với tính năng này từ PowerPoint, thì khi bạn tạo một tài liệu mới, sẽ có một trang chiếu cái mặc định và một số bố cục trang chiếu. Đương nhiên, trong một tệp PowerPoint, chúng ta có thể chỉnh sửa trang chiếu cái nếu muốn

Để tạo trang chiếu của chúng tôi, chúng tôi sẽ sử dụng trang chiếu cái mặc định và bố cục đầu tiên của nó. Để có được các bản cái slide có sẵn trong đối tượng Bản trình bày của chúng ta, chúng ta truy cập thuộc tính, là một đối tượng của lớp. Đối tượng này tương ứng với một chuỗi các đối tượng và do đó chúng ta có thể truy cập nó bằng ngữ nghĩa danh sách

Chúng tôi sẽ truy cập phần tử đầu tiên của danh sách này. Vì chúng tôi vừa tạo bản trình bày của mình nên nó sẽ chỉ có trang chiếu cái mặc định, nhưng nếu chúng tôi đang làm việc với một bản trình bày hiện có, thì có thể có nhiều trang chiếu cái

Trên SlideMaster của chúng ta, chúng ta sẽ truy cập vào thuộc tính, là một đối tượng của lớp. Một lần nữa, lớp này tương ứng với một chuỗi các đối tượng và hỗ trợ ngữ nghĩa danh sách. Chúng tôi cũng sẽ truy cập bố cục đầu tiên của danh sách

layout = presentation.slide_masters[0].slide_layouts[0]

Bây giờ chúng ta đã có bố cục của mình, cuối cùng chúng ta có thể thêm trang trình bày mới vào bản trình bày. Để làm như vậy, chúng ta truy cập thuộc tính của đối tượng Presentation và gọi phương thức

Là đầu vào, chúng tôi chuyển bố cục mà chúng tôi muốn sử dụng, bố cục mà chúng tôi đã lưu trữ trong một biến

slide = presentation.slides.add_slide(layout)

Để hoàn tất, chúng tôi sẽ lưu bản trình bày của mình để lấy tệp PowerPoint trong hệ thống tệp của chúng tôi. Để làm như vậy, chúng ta chỉ cần gọi phương thức trên đối tượng Trình bày, chuyển làm đầu vào đường dẫn đến nơi chúng ta muốn lưu tệp (nên bao gồm tên tệp có phần mở rộng)

Khi kiểm tra mã, đừng quên sử dụng đường dẫn trong hệ thống tệp của bạn

presentation.save('C:/Users/N/Desktop/presentation.pptx')

Mã hoàn chỉnh cho phần này có thể được nhìn thấy dưới đây

from pptx import Presentation

presentation = Presentation()
layout = presentation.slide_masters[0].slide_layouts[0]
presentation.slides.add_slide(layout)

presentation.save('C:/Users/N/Desktop/presentation.pptx')

Để kiểm tra mã trước đó, chỉ cần chạy nó trong một công cụ bạn chọn. Trong trường hợp của tôi, tôi đang sử dụng PyCharm, một Python IDE. Sau khi chạy mã, bạn sẽ nhận được một tệp PowerPoint mới ở vị trí của hệ thống tệp mà bạn đã chuyển sang phương thức lưu

Lưu ý rằng, nếu bạn mở tài liệu, nó sẽ chứa một trang chiếu

Thêm một hộp văn bản vào slide

Trong phần này, chúng tôi sẽ xây dựng dựa trên mã trước đó để thêm hộp văn bản vào trang chiếu của chúng tôi. Sau đó, chúng tôi sẽ viết một số nội dung vào hộp văn bản đó và đặt màu nền của nó thành màu xanh lam

Giống như trước đây, chúng tôi sẽ nhập chức năng Trình bày từ mô-đun pptx. Chúng tôi cũng sẽ nhập lớp Cm từ pptx. sử dụng mô-đun phụ và lớp RGBColor từ pptx. dml. mô-đun phụ màu. Chúng tôi sẽ kiểm tra việc sử dụng hai lớp dưới đây

from pptx import Presentation
from pptx.util import Cm
from pptx.dml.color import RGBColor

Sau này, chúng tôi sẽ làm những gì chúng tôi đã làm trong phần trước. tạo một đối tượng Bản trình bày và thêm một trang trình bày vào đó

Lưu ý rằng phương thức add_slide mà chúng ta đã sử dụng trước đây trả về một đối tượng của lớp. Lần này, chúng tôi sẽ lưu trữ nó trong một biến

________số 8_______

Bây giờ, để thêm một hộp văn bản vào slide của chúng ta, chúng ta truy cập thuộc tính, là một đối tượng của lớp. Sau đó, chúng ta gọi phương thức. Phương thức này nhận bốn đầu vào sau

  • vị trí X của góc trên cùng bên trái của hộp văn bản;
  • Vị trí Y của góc trên cùng bên trái của hộp văn bản;
  • Chiều rộng của hộp văn bản;
  • Chiều cao của hộp văn bản

Để giúp chúng tôi đặt tọa độ và kích thước của hộp văn bản, chúng tôi sẽ sử dụng lớp Cm để chỉ định chúng theo centimet. Bạn có thể kiểm tra các lớp trợ giúp khác có sẵn tại đây, cho phép sử dụng các đơn vị khác

Lưu ý rằng cuộc gọi phương thức này sẽ trả về một đối tượng mà chúng ta sẽ lưu trữ trong một biến, vì vậy chúng ta có thể định cấu hình các thuộc tính khác

text_box = slide.shapes.add_textbox(Cm(1), Cm(1), Cm(5), Cm(2))

Bây giờ chúng tôi có hộp văn bản của mình, chúng tôi sẽ đặt văn bản cho nó. Để làm như vậy, chúng ta chỉ cần truy cập thuộc tính văn bản và gán một giá trị

from pptx import Presentation
0

Để đặt màu nền cho hộp văn bản, chúng tôi sẽ truy cập thuộc tính của hình dạng của chúng tôi. Đây là một đối tượng của lớp. Trước tiên chúng ta sẽ gọi phương thức, để đặt kiểu tô thành khối

Sau đó, chúng ta sẽ truy cập thuộc tính của đối tượng FillFormat, là một đối tượng của lớp. Cuối cùng, chúng ta sẽ truy cập thuộc tính rgb của đối tượng cuối cùng này và gán cho nó một đối tượng thuộc lớp đại diện cho màu mà chúng ta muốn (trong trường hợp của chúng ta, chúng ta sẽ đặt nó thành màu xanh lam)

from pptx import Presentation
1

Mã hoàn chỉnh có thể được nhìn thấy bên dưới và đã bao gồm lưu tệp ở cuối

from pptx import Presentation
2

Khi chạy mã, bạn sẽ nhận được lại một tài liệu PowerPoint trong hệ thống tệp của mình (nếu bạn sử dụng cùng tên với tệp từ phần trước, nó sẽ ghi đè lên tệp hiện có)

Lần này, nếu bạn mở nó, bạn sẽ thấy một hộp văn bản màu xanh trong slide, giống như trong hình 1. Lưu ý rằng các hộp văn bản bổ trợ nhìn thấy ở đó (tiêu đề và phụ đề) được thêm vào theo mặc định do bố cục trang chiếu mặc định mà tôi đã sử dụng

Bạn có thể chỉnh sửa trang chiếu chính trong PowerPoint không?

Bạn có thể tự động hóa PowerPoint bằng Python không?

Để giúp chúng tôi tự động hóa báo cáo bản trình bày PowerPoint, chúng tôi sẽ sử dụng gói Python có tên python-pptx . Đây là gói Python được phát triển để tạo và cập nhật các tệp PowerPoint. Để bắt đầu sử dụng gói, trước tiên chúng ta cần cài đặt gói với đoạn mã sau.