PowerPointPythonでテーブルを作成および操作する

テーブルは通常、データを行と列の形式で整理するために使用されます。これらにより、データの表示、理解、分析が非常に簡単になります。さまざまな場合に、PowerPointプレゼンテーションにテーブルを挿入する必要があります。これをプログラムで実現するために、この記事では、Pythonを使用してPowerPointPPTまたはPPTXでテーブルを作成する方法について説明します。さらに、既存のPowerPointテーブルにアクセス、変更、およびフォーマットする方法を学習します。

PowerPointテーブルを作成および操作するためのPythonライブラリ

Aspose.Slides for Pythonは、PowerPointおよびOpenOfficeドキュメントを作成、操作、および変換するための一連の機能を提供します。このライブラリを使用して、PowerPointプレゼンテーションのテーブルを作成、編集、および操作します。次のコマンドを使用して、PyPIからライブラリをインストールできます。

> pip install aspose.slides

Pythonを使用してPowerPointPPTでテーブルを作成する

以下は、PythonでPowerPoint PPT/PPTXにテーブルを作成する手順です。

  • まず、Presentationクラスを使用して、PPT/PPTXプレゼンテーションをロードまたは作成します。
  • 次に、テーブルを追加する目的のスライドの参照を取得します。
  • その後、2つの配列を作成して、列と行の幅と高さをそれぞれ定義します。
  • ISlide.shapes.add_table()メソッドを使用してスライドに新しいテーブルを挿入し、その参照を取得します。
  • ループを開始して、テーブルの行を反復処理します。
  • ネストされたループを開始してテーブルのセルを反復処理し、各反復で次の操作を実行します。
    • Table.rows [row] [cell] .text\frame.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)

次のスクリーンショットは、上記のコードを使用して作成したテーブルを示しています。

Pythonを使用してPowerPointPPTでテーブルを作成する

Pythonを使用してPowerPointPPTでテーブルを編集する

プレゼンテーションスライドからアクセスして、既存のテーブルを変更することもできます。これは、PowerPointテーブルにアクセスし、Pythonでそのコンテンツまたは外観を編集する方法です。

  • まず、Presentationクラスを使用して既存のPowerPoint PPT/PPTXファイルをロードします。
  • 次に、目的のスライドの参照をオブジェクトに取得します。
  • テーブルのオブジェクトを作成し、Noneで初期化します。
  • ISlide.shapesコレクションを使用して、スライド内のすべての図形を反復処理します。
  • タイプTableの形状をフィルタリングします。
  • 必要に応じてテーブルを操作します。
  • 最後に、Presentation.save(string, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、Pythonを使用してPowerPointPPTでテーブルを編集する方法を示しています。

# 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)

Pythonを使用してPowerPointテーブルのテキストをフォーマットする

Aspose.Slides for Pythonでは、テーブル内のテキストに書式を適用することもできます。次の手順は、これを実現する方法を示しています。

  • まず、Presentationクラスを使用して既存のプレゼンテーションをロードします。
  • 次に、目的のスライドの参照をオブジェクトに取得します。
  • スライドからオブジェクトへの目的のテーブルの参照を取得します。
  • PortionFormat、ParagraphFormat、およびTextFrameFormatオブジェクトを使用してフォーマットを設定します。
  • Table.set_Text_format()メソッドを使用して、テーブルにフォーマットを割り当てます。
  • 最後に、Presentation.save(string, SaveFormat)メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、Pythonを使用してPowerPointでテーブル内のテキストの書式を設定する方法を示しています。

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)

PythonでのPowerPointテーブルのロックアスペクト比

次の手順に示すように、Pythonを使用してPowerPointプレゼンテーションのテーブルのアスペクト比をロックすることもできます。

  • まず、Presentationクラスを使用して既存のプレゼンテーションをロードします。
  • 次に、目的のスライドの参照をオブジェクトに取得します。
  • テーブルを作成するか、既存のテーブルの参照をオブジェクトに取得します。
  • Table.shape_lock.aspect_ratio\lockedプロパティを使用してアスペクト比をロックします。
  • 最後に、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を使用できます。

結論

表は、データを整理するために使用されるドキュメントの不可欠な部分です。この記事では、PythonでPowerPoint PPT/PPTXにテーブルを作成する方法を学びました。さらに、PowerPointプレゼンテーションの既存のテーブルにプログラムでアクセスして操作する方法を見てきました。また、ドキュメントにアクセスして、Aspose.Slides for Pythonの詳細を確認することもできます。また、フォーラムから質問することもできます。

関連項目

情報:Aspose JPG toPPTまたはPNGtoPPTコンバーターを使用すると、単純な画像からPowerPointプレゼンテーションを生成できます。