Создание таблиц и управление ими в PowerPoint Python

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

Библиотека Python для создания таблиц PowerPoint и управления ими

Aspose.Slides for Python предоставляет набор функций для создания, обработки и преобразования документов PowerPoint и OpenOffice. Мы будем использовать эту библиотеку для создания, редактирования и управления таблицами в наших презентациях PowerPoint. Вы можете установить библиотеку из PyPI с помощью следующей команды.

> pip install aspose.slides

Создайте таблицу в PowerPoint PPT с помощью Python

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

  • Во-первых, используйте класс Presentation для загрузки или создания презентации PPT/PPTX.
  • Затем получите ссылку на нужный слайд, на который вы хотите добавить таблицу.
  • После этого создайте два массива для определения ширины и высоты столбцов и строк соответственно.
  • Вставьте новую таблицу на слайд с помощью метода ISlide.shapes.addtable() и получите ссылку на нее.
  • Запустите цикл для перебора строк таблицы.
  • Запустите вложенный цикл для перебора ячеек таблицы и выполнения следующих операций на каждой итерации.
    • Задайте текст ячейки с помощью свойства Table.rows[row][cell].textframe.text.
    • При необходимости установите стиль границы ячейки.
  • Наконец, сохраните презентацию с помощью метода Presentation.save(string, SaveFormat).

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

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

# Create a new presentation (to load an existing presentation, provide file's path in constructor)
with slides.Presentation() as pres:
    # Access first slide
    sld = 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 = sld.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])):
            
            # Add text
            tbl.rows[row][cell].text_frame.text = "Cell_" + cell

            # Set border
            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.red
            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.red
            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.red
            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.red
            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 PPTX to Disk
    pres.save("table.pptx", slides.export.SaveFormat.PPTX)

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

Создайте таблицу в PowerPoint PPT с помощью Python

Редактировать таблицу в PowerPoint PPT с помощью Python

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

  • Сначала загрузите существующий файл PowerPoint PPT/PPTX, используя класс Presentation.
  • Затем получите ссылку на нужный слайд в объект.
  • Создайте объект для таблицы и инициализируйте его значением None.
  • Переберите все фигуры на слайде, используя коллекцию ISlide.shapes.
  • Отфильтруйте фигуры типа Таблица.
  • Манипулируйте таблицей по мере необходимости.
  • Наконец, сохраните презентацию с помощью метода Presentation.save(string, SaveFormat).

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

# Load presentation
with slides.Presentation("table.pptx") as pres:
    # Access the first slide
    sld = pres.slides[0]

    # Initialize null TableEx
    tbl = None

    # Iterate through the shapes and set a reference to the table found
    for shp in sld.shapes:
        if type(shp) is slides.Table:
            tbl = shp

    # Set the text of the first column of second row
    tbl.rows[0][1].text_frame.text = "New"

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

Форматирование текста в таблицах PowerPoint с помощью Python

Aspose.Slides для Python также позволяет применять форматирование к тексту внутри таблиц. Следующие шаги показывают, как этого можно добиться.

  • Сначала загрузите существующую презентацию, используя класс Presentation.
  • Затем получите ссылку на нужный слайд в объект.
  • Получить ссылку на нужную таблицу из слайда в объект.
  • Установите форматирование с помощью объектов PortionFormat, ParagraphFormat и TextFrameFormat.
  • Присвойте форматирование таблице с помощью метода Table.settextformat().
  • Наконец, сохраните презентацию с помощью метода Presentation.save(string, SaveFormat).

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

import aspose.slides as slides

# Create a presentation
with slides.Presentation() as presentation:

    # Add table
    someTable = presentation.slides[0].shapes.add_table(100, 100, [100, 50, 30], [30, 50, 30])

    # Set table cells' font height
    portionFormat = slides.PortionFormat()
    portionFormat.font_height = 25
    someTable.set_text_format(portionFormat)

    # Set table cells' text alignment and right margin in one call
    paragraphFormat = slides.ParagraphFormat()
    paragraphFormat.alignment = slides.TextAlignment.RIGHT
    paragraphFormat.margin_right = 20
    someTable.set_text_format(paragraphFormat)

    # Set table cells' text vertical type
    textFrameFormat = slides.TextFrameFormat()
    textFrameFormat.text_vertical_type = slides.TextVerticalType.VERTICAL
    someTable.set_text_format(textFrameFormat)

    # Save presentation
    presentation.save("table-formatting.pptx", slides.export.SaveFormat.PPTX)

Блокировка соотношения сторон таблиц PowerPoint в Python

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

  • Сначала загрузите существующую презентацию, используя класс Presentation.
  • Затем получите ссылку на нужный слайд в объект.
  • Создайте таблицу или получите ссылку на существующую таблицу в объект.
  • Заблокируйте соотношение сторон, используя свойство Table.shapelock.aspectratiolocked.
  • Наконец, сохраните презентацию с помощью метода Presentation.save(string, SaveFormat).

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

import aspose.slides as slides

# Create presentation
with slides.Presentation() as pres:
    # Add table
    table = pres.slides[0].shapes.add_table(100, 100, [100, 50, 30], [30, 50, 30])
    print("Lock aspect ratio set: {0}".format(table.shape_lock.aspect_ratio_locked))
    
    # Lock aspect ratio
    table.shape_lock.aspect_ratio_locked = not table.shape_lock.aspect_ratio_locked
    print("Lock aspect ratio set: {0}".format(table.shape_lock.aspect_ratio_locked))

    # Save presentation
    pres.save("pres-out.pptx", slides.export.SaveFormat.PPTX)

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

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

Вывод

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

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

Информация: Используя конвертер Aspose JPG в PPT или PNG в PPT, вы можете создавать презентации PowerPoint из простых изображений.