Создание и изменение PowerPoint ppt pptx в Python

MS PowerPoint — это многофункциональное приложение, позволяющее создавать интерактивные презентации с использованием диаграмм, графики, анимации и других элементов. Как программист, вам может понадобиться автоматизировать функции управления презентациями PowerPoint из приложений Python. В этом посте вы узнаете, как создавать презентации PowerPoint PPT или PPTX на Python. Кроме того, мы расскажем, как программно добавлять в презентации слайды, текст, таблицы, изображения и диаграммы.

Библиотека Python для создания PowerPoint PPT

Aspose.Slides for Python через .NET — это мощная библиотека Python, которая позволяет создавать и управлять PowerPoint PPT/PPTX без MS Office. Более того, вы можете обновлять существующие презентации и преобразовывать их в другие форматы. Вы можете установить библиотеку из PyPI с помощью следующей команды pip.

> pip install aspose.slides

Создайте PowerPoint PPT на Python

Во-первых, давайте создадим презентацию PowerPoint с пустым слайдом, который добавляется по умолчанию. Следующие шаги показывают, как создать PowerPoint PPT в Python.

  • Сначала создайте экземпляр класса Presentation.
  • Затем сохраните PPT, используя метод Presentation.save(string, export.SaveFormat).

В следующем примере кода показано, как создать файл PowerPoint PPTX в Python.

import aspose.slides as slides

# Create a new presentation
with slides.Presentation() as presentation:
    
    # Access the default slide
    slide = presentation.slides[0]
    
    # Save the presentation
    presentation.save("create-presentation.pptx", slides.export.SaveFormat.PPTX)

Откройте файл PowerPoint PPTX в Python

Вы также можете открыть существующую презентацию и обновить ее содержимое. Для этого вам нужно только указать путь к файлу презентации в конструкторе презентации. В следующем примере кода показано, как открыть существующий файл PPT/PPTX в Python.

import aspose.slides as slides

# Open presentation
with slides.Presentation("presentation.ppt") as presentation:
    
    # Access the default slide
    slide = presentation.slides[0]
    
    # Save the presentation
    presentation.save("create-presentation.ppt", slides.export.SaveFormat.PPT)

Добавить слайд в PowerPoint PPT на Python

Давайте теперь добавим новый слайд в презентацию, которую мы создали ранее. Вы также можете добавить слайды в существующую презентацию таким же образом, сначала открыв презентацию (как показано в предыдущем разделе). Ниже приведены шаги по добавлению слайда в презентацию PPT/PPTX в Python.

  • Сначала создайте новую (или загрузите существующую) презентацию, используя класс Presentation.
  • Затем получите ссылку на коллекцию слайдов, используя свойство Presentation.slides.
  • Добавьте слайд с помощью метода Presentation.slides.addemtyslide(LayoutSlide).
  • Наконец, сохраните презентацию с помощью метода Presentation.save(string, export.SaveFormat).

В следующем примере кода показано, как добавить слайд в презентацию PowerPoint в Python.

import aspose.slides as slides

# Create a new presentation
with slides.Presentation() as pres:
    # Get reference of slides
    slds = pres.slides

    # Loop through layout slides
    for i in range(len(pres.layout_slides)):
        # Add an empty slide to the slides collection
        slds.add_empty_slide(pres.layout_slides[i])
        
    # Do some work on the newly added slide

    # Save the PPTX file to the Disk
    pres.save("presentation.pptx", slides.export.SaveFormat.PPTX)

Добавить текст в PowerPoint PPT на Python

После того, как мы добавили слайд, мы можем приступить к добавлению содержимого. Во-первых, давайте посмотрим, как добавить текст к слайдам презентации в Python.

  • Создайте новый (или загрузите существующий) PPT/PPTX, используя класс Presentation.
  • Получите ссылку на слайд из коллекции Presentation.slides.
  • Добавьте новую автоматическую фигуру на слайд с помощью метода Slide.shapes.addautoshape(slides.ShapeType.RECTANGLE, int, int, int, int) и получите ссылку на фигуру в объекте.
  • Добавьте текстовый фрейм к фигуре, используя метод addtextframe(string).
  • Доступ к абзацу по умолчанию текстового фрейма.
  • Получите доступ к части абзаца по умолчанию.
  • Добавьте текст в часть и сохраните презентацию с помощью метода Presentation.save(string, export.SaveFormat).

В следующем примере кода показано, как добавить текст на слайд в PPT с помощью Python.

import aspose.slides as slides

# Create presentation
with slides.Presentation() as pres:
    # Access first slide
    slide = pres.slides[0]

    # Add an AutoShape with type set as Rectangle
    ashp = slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, 150, 75, 150, 50)

    # Add TextFrame to the Rectangle
    ashp.add_text_frame(" ")

    # Access the text frame
    txtFrame = ashp.text_frame

    # Create the Paragraph object for text frame
    para = txtFrame.paragraphs[0]

    # Create a Portion object for paragraph
    portion = para.portions[0]

    # Set text
    portion.text = "Aspose TextBox"

    # Save the presentation
    pres.save("add-text-in-presentation.pptx", slides.export.SaveFormat.PPTX)

Ниже приведен скриншот слайда после добавления текста.

добавить текст в powerpoint ppt в python

Подробнее о работе с текстом в презентациях PowerPoint.

Создать таблицу в PowerPoint PPT на Python

Таблицы являются неотъемлемой частью документов и широко используются в презентациях PowerPoint. Aspose.Slides для Python значительно упрощает создание таблицы в презентации. Итак, давайте посмотрим, как создать таблицу в PPT с помощью Python.

  • Создайте новый (или загрузите существующий) PPT/PPTX, используя класс Presentation.
  • Получите ссылку на слайд из коллекции Presentation.slides.
  • Определите массивы столбцов с шириной и строк с высотой.
  • Создайте таблицу с помощью Slide.shapes.addTable() и получите ссылку на таблицу в объекте.
  • Прокрутите ячейки, чтобы применить форматирование.
  • Добавьте текст в ячейки, используя свойство Table.rows[][].textframe.text.
  • Сохраните презентацию с помощью метода Presentation.save(string, export.SaveFormat).

В следующем примере кода показано, как создавать таблицы в презентации PowerPoint с помощью Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation
with slides.Presentation() as pres:
    # Access first slide
    slide = pres.slides[0]

    # Define columns with widths and rows with heights
    dblCols =  [50, 50, 50] 
    dblRows =  [50, 30, 30, 30, 30] 

    # Add table shape to slide
    tbl = slide.shapes.add_table(100, 50, dblCols, dblRows)

    # Set border format for each cell
    for row in range(len(tbl.rows)):
        for cell in range(len(tbl.rows[row])):
            tbl.rows[row][cell].cell_format.border_top.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_top.fill_format.solid_fill_color.color = drawing.Color.blue
            tbl.rows[row][cell].cell_format.border_top.width = 5

            tbl.rows[row][cell].cell_format.border_bottom.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_bottom.fill_format.solid_fill_color.color= drawing.Color.blue
            tbl.rows[row][cell].cell_format.border_bottom.width =5

            tbl.rows[row][cell].cell_format.border_left.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_left.fill_format.solid_fill_color.color =drawing.Color.blue
            tbl.rows[row][cell].cell_format.border_left.width = 5

            tbl.rows[row][cell].cell_format.border_right.fill_format.fill_type = slides.FillType.SOLID
            tbl.rows[row][cell].cell_format.border_right.fill_format.solid_fill_color.color = drawing.Color.blue
            tbl.rows[row][cell].cell_format.border_right.width = 5


    # Merge cells 1 & 2 of row 1
    tbl.merge_cells(tbl.rows[0][0], tbl.rows[1][1], False)

    # Add text to the merged cell
    tbl.rows[0][0].text_frame.text = "Merged Cells"

    # Save the presentation
    pres.save("add-table-in-presentation.pptx", slides.export.SaveFormat.PPTX)

Ниже приведен вывод приведенного выше фрагмента кода.

добавить таблицу в PowerPoint ppt в Python

Изучите другие возможности создания таблиц и управления ими.

Создайте диаграмму в PowerPoint PPT на Python

Ниже приведены шаги по добавлению диаграммы в презентацию PowerPoint на Python.

  • Создайте новую (или загрузите существующую) презентацию, используя класс Presentation.
  • Получите ссылку на слайд из коллекции Presentation.slides.
  • Добавьте диаграмму нужного типа с помощью метода Slide.shapes.addChart(ChartType, single, single, single, single).
  • Получите доступ к рабочему листу данных диаграммы.
  • Очистите все серии и категории по умолчанию.
  • Добавляйте новые серии и категории.
  • Добавьте новые данные диаграммы для серий диаграмм.
  • Установите цвет заливки для серии диаграммы.
  • Добавьте метки серий диаграмм.
  • Сохраните презентацию в виде файла PPTX.

В следующем примере кода показано, как добавить диаграмму в PPT с помощью Python.

import aspose.slides as slides
import aspose.pydrawing as drawing

# Create presentation
with slides.Presentation() as pres:
    # Access first slide
    slide = pres.slides[0]

    # Access first slide
    sld = pres.slides[0]

    # Add chart with default data
    chart = sld.shapes.add_chart(slides.charts.ChartType.CLUSTERED_COLUMN, 0, 0, 500, 500)

    # Set chart Title
    chart.chart_title.add_text_frame_for_overriding("Sample Title")
    chart.chart_title.text_frame_for_overriding.text_frame_format.center_text = 1
    chart.chart_title.height = 20
    chart.has_title = True

    # Set first series to Show Values
    chart.chart_data.series[0].labels.default_data_label_format.show_value = True

    # Set the index of chart data sheet
    defaultWorksheetIndex = 0

    # Get the chart data worksheet
    fact = chart.chart_data.chart_data_workbook

    # Delete default generated series and categories
    chart.chart_data.series.clear()
    chart.chart_data.categories.clear()
    s = len(chart.chart_data.series)
    s = len(chart.chart_data.categories)

    # Add new series
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 1, "Series 1"), chart.type)
    chart.chart_data.series.add(fact.get_cell(defaultWorksheetIndex, 0, 2, "Series 2"), chart.type)

    # Add new categories
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 1, 0, "Caetegoty 1"))
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 2, 0, "Caetegoty 2"))
    chart.chart_data.categories.add(fact.get_cell(defaultWorksheetIndex, 3, 0, "Caetegoty 3"))

    # Take first chart series
    series = chart.chart_data.series[0]

    # Now populating series data

    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 1, 20))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 1, 50))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 1, 30))

    # Set fill color for series
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.red

    # Take second chart series
    series = chart.chart_data.series[1]

    # Now populating series data
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 1, 2, 30))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 2, 2, 10))
    series.data_points.add_data_point_for_bar_series(fact.get_cell(defaultWorksheetIndex, 3, 2, 60))

    # Setting fill color for series
    series.format.fill.fill_type = slides.FillType.SOLID
    series.format.fill.solid_fill_color.color = drawing.Color.orange

    # First label will be show Category name
    lbl = series.data_points[0].label
    lbl.data_label_format.show_category_name = True

    lbl = series.data_points[1].label
    lbl.data_label_format.show_series_name = True

    # Show value for third label
    lbl = series.data_points[2].label
    lbl.data_label_format.show_value = True
    lbl.data_label_format.show_series_name = True
    lbl.data_label_format.separator = "/"

    # Save the presentation
    pres.save("create-chart-in-presentation.pptx", slides.export.SaveFormat.PPTX)

На следующем снимке экрана показана диаграмма, которую мы создали с помощью приведенного выше фрагмента кода.

добавить диаграмму в PowerPoint pptx в Python

Подробнее о создании диаграмм в презентациях PowerPoint.

Добавить изображение в PowerPoint PPTX в Python

Ниже приведены шаги для добавления изображения в PowerPoint PPTX в Python.

  • Создайте новую (или загрузите существующую) презентацию, используя класс Presentation.
  • Получите ссылку на слайд из коллекции Presentation.slides.
  • Откройте изображение из файла с помощью метода open(string, string).
  • Добавьте изображение в коллекцию изображений презентации, используя метод Presentation.images.addimage().
  • Добавьте изображение на слайд с помощью метода Slide.shapes.addpictureframe().
  • Сохраните презентацию с помощью метода Presentation.save(string, export.SaveFormat).

В следующем примере кода показано, как добавить изображение в презентацию PowerPoint в Python.

import aspose.slides as slides

# Create presentation
with slides.Presentation() as pres:
    # Access first slide
    slide = pres.slides[0]

    # Load image from file
    with open("python-logo.png", "rb") as in_file:
      
        # Add image to presentation's image collection
        image = pres.images.add_image(in_file)

        # Add image to slide
        slide.shapes.add_picture_frame(slides.ShapeType.RECTANGLE, 10, 10, 100, 100, image)

    # Save the presentation
    pres.save("add-image-in-presentation.pptx", slides.export.SaveFormat.PPTX)

Ниже приведен вывод приведенного выше примера кода.

добавить изображения в PowerPoint PPT на Python

Узнайте больше о работе с изображениями в презентациях PowerPoint.

Получить бесплатную лицензию

Вы можете использовать Aspose.Slides для Python через .NET без ограничений по оценке, получив временную лицензию.

Вывод

В этой статье вы узнали, как создать PowerPoint PPT/PPTX с нуля в Python. Мы продемонстрировали, как добавлять слайды, текст, таблицы, диаграммы и изображения в презентации PowerPoint. Кроме того, вы можете изучить другие функции Aspose.Slides для Python, используя документацию. Кроме того, не стесняйтесь делиться с нами своими вопросами через наш форум.

Смотрите также