PythonでPowerPointpptpptxを作成および変更する

MS PowerPointは、チャート、グラフィックス、アニメーション、およびその他の要素を使用してインタラクティブなプレゼンテーションを作成できる機能豊富なアプリケーションです。プログラマーとして、Pythonアプリケーション内からPowerPointのプレゼンテーション操作機能を自動化する必要があるかもしれません。この投稿では、PythonでPowerPointPPTまたはPPTXプレゼンテーションを作成する方法を学習します。さらに、プログラムでプレゼンテーションにスライド、テキスト、表、画像、およびグラフを追加する方法についても説明します。

PowerPointPPTを作成するためのPythonライブラリ

Aspose.Slides for Python via .NETは、MSOfficeなしでPowerPointPPT/PPTXを作成および操作できる強力なPythonライブラリです。さらに、既存のプレゼンテーションを更新して、他の形式に変換することができます。次のpipコマンドを使用して、PyPIからライブラリをインストールできます。

> pip install aspose.slides

PythonでPowerPointPPTを作成する

まず、デフォルトで追加されている空のスライドを持つPowerPointプレゼンテーションを作成しましょう。次の手順は、PythonでPowerPointPPTを作成する方法を示しています。

  • まず、Presentationクラスのインスタンスを作成します。
  • 次に、**Presentation.save(string, export.SaveFormat)**メソッドを使用してPPTを保存します。

次のコードサンプルは、PythonでPowerPoint PPTXファイルを作成する方法を示しています。

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)

PythonでPowerPoint PPTXファイルを開く

既存のプレゼンテーションを開いて、そのコンテンツを更新することもできます。これを実現するには、Presentationコンストラクターでプレゼンテーションファイルのパスを指定するだけで済みます。次のコードサンプルは、Pythonで既存のPPT/PPTXファイルを開く方法を示しています。

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)

PythonでPowerPointPPTにスライドを追加する

以前に作成したプレゼンテーションに新しいスライドを追加しましょう。最初にプレゼンテーションを開くことで、同じ方法で既存のプレゼンテーションにスライドを追加することもできます(前のセクションに示されているように)。以下は、PythonのPPT/PPTXプレゼンテーションにスライドを追加する手順です。

  • まず、Presentationクラスを使用して新しい(または既存のロード)プレゼンテーションを作成します。
  • 次に、Presentation.slidesプロパティを使用してスライドコレクションの参照を取得します。
  • **Presentation.slides.add_empty_slide(LayoutSlide)**メソッドを使用してスライドを追加します。
  • 最後に、**Presentation.save(string, export.SaveFormat)**メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、PythonでPowerPointプレゼンテーションにスライドを追加する方法を示しています。

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)

PythonでPowerPointPPTにテキストを追加する

スライドを追加したら、コンテンツの追加に進むことができます。まず、Pythonでプレゼンテーションスライドにテキストを追加する方法を見てみましょう。

  • Presentationクラスを使用して、新しい(または既存の)PPT/PPTXを作成します。
  • Presentation.slidesコレクションからスライドの参照を取得します。
  • **Slide.shapes.add_auto_shape(slides.ShapeType.RECTANGLE, int, int, int, int)**メソッドを使用してスライドに新しい自動形状を追加し、オブジェクト内の形状の参照を取得します。
  • **add_text_frame(string)**メソッドを使用して、図形にテキストフレームを追加します。
  • テキストフレームのデフォルトの段落にアクセスします。
  • 段落のデフォルト部分にアクセスします。
  • 部分にテキストを追加し、**Presentation.save(string, export.SaveFormat)**メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、Pythonを使用してPPTのスライドにテキストを追加する方法を示しています。

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)

以下は、テキストを追加した後のスライドのスクリーンショットです。

Pythonのパワーポイントpptにテキストを追加する

続きを読むPowerPointプレゼンテーションでのテキストの操作について。

PythonでPowerPointPPTにテーブルを作成する

表はドキュメントの不可欠な部分であり、PowerPointプレゼンテーションでも広く使用されています。 Aspose.Slides for Pythonを使用すると、プレゼンテーションでテーブルを簡単に作成できます。それでは、Pythonを使用してPPTでテーブルを作成する方法を見てみましょう。

  • Presentationクラスを使用して、新しい(または既存の)PPT/PPTXを作成します。
  • Presentation.slidesコレクションからスライドの参照を取得します。
  • 幅のある列と高さのある行の配列を定義します。
  • **Slide.shapes.addTable()**を使用してテーブルを作成し、オブジェクト内のテーブルの参照を取得します。
  • セルをループして、書式を適用します。
  • Table.rows[][].text_frame.textプロパティを使用してセルにテキストを追加します。
  • **Presentation.save(string, export.SaveFormat)**メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、Pythonを使用してPowerPointプレゼンテーションでテーブルを作成する方法を示しています。

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)

以下は、上記のコードスニペットの出力です。

PythonのPowerPointpptにテーブルを追加する

テーブルの作成と操作の他の機能を調べてください。

PythonでPowerPointPPTにグラフを作成する

以下は、PythonのPowerPointプレゼンテーションにグラフを追加する手順です。

  • Presentationクラスを使用して、新しい(または既存の)プレゼンテーションを作成します。
  • Presentation.slidesコレクションからスライドの参照を取得します。
  • **Slide.shapes.addChart(ChartType, single, single, single, single)**メソッドを使用して、目的のタイプのグラフを追加します。
  • チャートデータワークシートにアクセスします。
  • デフォルトのシリーズとカテゴリをすべてクリアします。
  • 新しいシリーズとカテゴリを追加します。
  • チャートシリーズの新しいチャートデータを追加します。
  • チャートシリーズの塗りつぶし色を設定します。
  • チャートシリーズのラベルを追加します。
  • プレゼンテーションをPPTXファイルとして保存します。

次のコードサンプルは、Pythonを使用してPPTにグラフを追加する方法を示しています。

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)

次のスクリーンショットは、上記のコードスニペットを使用して作成したグラフを示しています。

PythonのPowerPoint PPTXにグラフを追加する

詳細PowerPointプレゼンテーションでのグラフの作成について。

PythonのPowerPoint PPTXに画像を追加する

以下は、PythonでPowerPoint PPTXに画像を追加する手順です。

  • Presentationクラスを使用して、新しい(または既存の)プレゼンテーションを作成します。
  • Presentation.slidesコレクションからスライドの参照を取得します。
  • **open(string, string)**メソッドを使用してファイルから画像を開きます。
  • **Presentation.images.add_image()**メソッドを使用して、プレゼンテーションの画像コレクションに画像を追加します。
  • **Slide.shapes.add_picture_frame()**メソッドを使用してスライドに画像を追加します。
  • **Presentation.save(string, export.SaveFormat)**メソッドを使用してプレゼンテーションを保存します。

次のコードサンプルは、PythonでPowerPointプレゼンテーションに画像を追加する方法を示しています。

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)

以下は、上記のコードサンプルの出力です。

PythonのPowerPointPPTに画像を追加する

PowerPointプレゼンテーションの画像の操作の詳細をご覧ください。

無料ライセンスを取得する

一時ライセンスを取得することで、評価の制限なしに.NET経由でAspose.Slides for Pythonを使用できます。

結論

この記事では、PythonでPowerPoint PPT/PPTXを最初から作成する方法を学びました。 PowerPointプレゼンテーションにスライド、テキスト、表、グラフ、および画像を追加する方法を示しました。さらに、ドキュメントを使用して、Python用のAspose.Slidesの他の機能を調べることができます。また、フォーラムを介してお気軽にご質問をお寄せください。

関連項目