Excel ワークシートに画像を挿入または削除することで、スプレッドシートの視覚的な魅力を高めることができます。ロゴ、グラフ、図表などの画像を取り入れることで、より見やすく情報を伝えやすい資料を作成できます。また、Excel では画像のリサイズ、移動、削除などの操作も可能です。 本記事では、Spire.XLS for Python を使用して、Python で Excel に画像をプログラムで挿入・削除する方法をご紹介します。 Python で特定の Excel セルに画像を挿入する 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() 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 日間有効な一時ライセンスを取得してください。