チュートリアル

簡単にライブラリーを使用するためのチュートリアルコレクション

チュートリアル»Python»Spire.XLS for Python»画像»Python:Excel ワークシートに画像を挿入・削除する方法
2025-04-27

Python:Excel ワークシートに画像を挿入・削除する方法

Excel ワークシートに画像を挿入または削除することで、スプレッドシートの視覚的な魅力を高めることができます。ロゴ、グラフ、図表などの画像を取り入れることで、より見やすく情報を伝えやすい資料を作成できます。また、Excel では画像のリサイズ、移動、削除などの操作も可能です。

本記事では、Spire.XLS for Python を使用して、Python で Excel に画像をプログラムで挿入・削除する方法をご紹介します。

Spire.XLS for Python のインストール

この操作には、Spire.XLS for Python と plum-dispatch v1.7.4 が必要です。これらは、Spire.XLS for Python の公式ウェブサイトから手動でダウンロードするか、以下の pip コマンドでインストールできます。

pip install Spire.XLS

Python で特定の Excel セルに画像を挿入する

特定のセルに画像を挿入するには、Worksheet.Pictures.Add(int topRow, int leftColumn, Image image) メソッドを使用します。以下の手順で実装できます。

  • Workbook オブジェクトを初期化します。
  • Workbook.Worksheets[sheetIndex] プロパティを使って対象のワークシートを取得します。
  • Worksheet.Pictures.Add() メソッドを使って指定セルに画像を挿入し、ExcelPicture オブジェクトを取得します。
  • ExcelPicture オブジェクトのプロパティを使って、画像の幅・高さや、セルとの余白(マージン)を設定します。
  • Workbook.SaveToFile() メソッドで Excel ファイルとして保存します。
  • Python
from spire.xls import Workbook, ExcelVersion

# Workbook オブジェクトを作成します
workbook = Workbook()

# 最初のワークシートを取得します
sheet = workbook.Worksheets[0]

# 指定したセルに画像を追加します
imgPath = "Logo.png"
picture = sheet.Pictures.Add(1, 3, imgPath)

# 画像の幅と高さを設定します
picture.Width = 150
picture.Height = 150

# セルが画像を収められるように列の幅と行の高さを調整します
sheet.Columns[2].ColumnWidth = 25
sheet.Rows[0].RowHeight = 135

# セルの境界線と画像との間隔を設定します
picture.LeftColumnOffset = 90
picture.TopRowOffset = 20

# ファイルに保存します
workbook.SaveToFile("output/Excelに画像を挿入.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

Spire.XLS for PythonによるExcelワークシートへの画像挿入

Python で Excel ワークシート内の画像を削除する

Excel ワークシート内の画像は、Worksheet.Pictures[imgIndex].Remove() メソッドを使用して削除できます。すべての画像を削除したい場合は、forループで画像を一つずつ削除します。以下がその手順です。

  • Workbook オブジェクトを作成します。
  • Workbook.LoadFromFile() メソッドで Excel ファイルを読み込みます。
  • Workbook.Worksheets[sheetIndex] プロパティを使用して対象のワークシートを取得します。
  • Worksheet.Pictures[imgIndex].Remove() メソッドを使って画像を削除します。ループ処理で複数の画像を削除可能です。
  • Workbook.SaveToFile() メソッドで編集内容を別の Excel ファイルとして保存します。
  • Python
from spire.xls import Workbook

# Workbook オブジェクトを作成します
workbook = Workbook()

# Excel ファイルを読み込みます
workbook.LoadFromFile("output/Excelに画像を挿入.xlsx")

# 最初のワークシートを取得します
sheet = workbook.Worksheets[0]

# ワークシート内のすべての画像を削除します
for i in range(sheet.Pictures.Count - 1, -1, -1):
    sheet.Pictures[i].Remove()

# 特定の画像を削除する場合
# sheet.Pictures[imgIndex].Remove()

# ファイルに保存します
workbook.SaveToFile("output/DeleteImage.xlsx")
workbook.Dispose()

一時ライセンスを申請する

結果ドキュメントから評価メッセージを削除したい場合、または機能制限を取り除く場合は、についてこのメールアドレスはスパムボットから保護されています。閲覧するにはJavaScriptを有効にする必要があります。にお問い合わせ、30 日間有効な一時ライセンスを取得してください。

Read 63 times