ワークシートから画像を追加、抽出、削除する方法 | IronXL

C#を使用してExcelで画像を追加、抽出、削除する方法

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronXLはC#の開発者がExcelのワークシートにプログラムで画像を挿入したり、既存の画像をプロパティとともに抽出したり、Excel Interopに依存することなくシンプルなAPIメソッドで不要な画像を削除したりすることを可能にします。 この機能は、会社のロゴ、製品画像、データの視覚化グラフィックなどの視覚的要素を必要とするExcelファイルを.NETで作成する場合に不可欠です。

画像を追加すると、関連するグラフィックやイラストでデータが豊かになります。 画像を削除することで、コンテンツの編集と構成が簡単になります。 画像を抽出することで、他の文書やアプリケーションで画像を再利用したり、既存の画像を更新したりすることができます。 これらの機能は、Excelワークブック内での画像操作を完全に制御します。

クイックスタート: 一度に挿入、抽出、削除

IronXLの直感的なAPIを使用し、わずか数行でワークシートから画像を追加、取得、削除することができます。 この例では、画像を挿入し、Images コレクションを介してアクセスし、削除する方法を示します。

Nuget Icon今すぐ NuGet で PDF を作成してみましょう:

  1. NuGet パッケージ マネージャーを使用して IronXL をインストールします

    PM > Install-Package IronXL.Excel

  2. このコード スニペットをコピーして実行します。

    workSheet.InsertImage("logo.png", 1, 1, 3, 3);
    workSheet.RemoveImage(1);
    var firstImage = workSheet.Images[0];
  3. 実際の環境でテストするためにデプロイする

    今すぐ無料トライアルでプロジェクトに IronXL を使い始めましょう
    arrow pointer


Excelワークシートに画像を追加するには?

To insert an image into a spreadsheet, use the InsertImage method, which supports various image types including JPG/JPEG, BMP, PNG, GIF, and TIFF. この機能は、C#でExcelチャートを作成し、視覚的要素を追加して補足する必要がある場合に特に役立ちます。 画像の左上隅と右下隅を指定して寸法を決定し、列と行の値を差し引いて計算します。

メソッド・シグネチャは、画像ファイルのパス、開始列、開始行、終了列、終了行を表す4つの整数の5つのパラメータを必要とします。 画像は、定義されたセル範囲内に収まるように伸縮します。 例えば:

  • 1x1の画像サイズの場合:
    • worksheet.InsertImage("image.gif", 5, 1, 6, 2);.
  • 2x2の画像サイズの場合:
    • worksheet.InsertImage("image.gif", 5, 1, 7, 3);.

IronXL.Excelで画像を扱う場合、IronXL.Excelが内部的に画像をどのように管理しているかを理解してください。 挿入される各画像には、特定のパターンに従った一意のIDが付与されます。 BRACKET-i-OPEN--@生成された画像IDは、1、3、5、7......というパターンに従っています。

:path=/static-assets/excel/content-code-examples/how-to/add-remove-extract-worksheet-images-insert.cs
using IronXL;

WorkBook workBook = WorkBook.Create();
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Insert images
workSheet.InsertImage("ironpdf.jpg", 2, 2, 4, 4);
workSheet.InsertImage("ironpdfIcon.png", 2, 6, 4, 8);

workBook.SaveAs("insertImages.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Create()
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Insert images
workSheet.InsertImage("ironpdf.jpg", 2, 2, 4, 4)
workSheet.InsertImage("ironpdfIcon.png", 2, 6, 4, 8)

workBook.SaveAs("insertImages.xlsx")
$vbLabelText   $csharpLabel

InsertImageメソッドは、ワークシート内の画像の位置やサイズの柔軟性を提供します。 Excelで手動で画像を挿入するのとは異なり、プログラムによる挿入では、複数のファイルで一貫した配置が保証されるため、標準化された書式を必要とするレポートや文書の作成に最適です。 このアプローチは、Interop なしで C# で Excel を使用する場合、Microsoft Office インストールへの依存がなくなるため、特に有益です。

Excelで挿入された画像はどのように見えますか?

どのように Excel ファイルから画像を抽出できますか?

To extract images from the selected worksheet, access the Images property, which provides a list of all images contained within the sheet. この機能は、Interop なしで Excel ファイルをロードし、埋め込まれたビジュアル コンテンツを処理する必要がある場合に不可欠です。 このリストから、画像のエクスポート、サイズ変更、位置の取得、各画像のバイトデータの取得など、さまざまな操作を実行できます。 画像IDは奇数パターンで、1、3、5、7......の順に増加します。

抽出プロセスは、画像のプロパティとデータへの包括的なアクセスを提供し、開発者に以下を可能にします:

  • 画像をさまざまなフォーマット(PNG、JPEG、BMPなど)にエクスポートします。
  • レイアウト保持のための画像位置情報の取得
  • カスタム処理や保存のための生のバイトデータへのアクセス
  • 外部の画像処理ライブラリを使用せずに、プログラムで画像をリサイズします。

この機能は、異なる文書フォーマット間でコンテンツを移行する際や、Excelファイルからビジュアルアセットをカタログ化して管理する必要のあるシステムを構築する際に、非常に貴重なものとなります。 プログラムで画像を抽出する機能は、画像の検証や特定のビジネスルールに従った処理が必要な場合、自動化された品質管理プロセスもサポートします。

:path=/static-assets/excel/content-code-examples/how-to/add-remove-extract-worksheet-images-extract.cs
using IronSoftware.Drawing;
using IronXL;
using IronXL.Drawing;
using System;
using System.Collections.Generic;

WorkBook workBook = WorkBook.Load("insertImages.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Retreive images
List<IronXL.Drawing.Images.IImage> images = workSheet.Images;

// Select each image
foreach (IronXL.Drawing.Images.IImage image in images)
{
    // Save the image
    AnyBitmap anyBitmap = image.ToAnyBitmap();
    anyBitmap.SaveAs($"{image.Id}.png");

    // Resize the image
    image.Resize(1,3);

    // Retrieve image position
    Position position = image.Position;
    Console.WriteLine("top row index: " + position.TopRowIndex);
    Console.WriteLine("bottom row index: " + position.BottomRowIndex);

    // Retrieve byte data
    byte[] imageByte = image.Data;
}

workBook.SaveAs("resizeImage.xlsx");
Imports IronSoftware.Drawing
Imports IronXL
Imports IronXL.Drawing
Imports System
Imports System.Collections.Generic

Private workBook As WorkBook = WorkBook.Load("insertImages.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Retreive images
Private images As List(Of IronXL.Drawing.Images.IImage) = workSheet.Images

' Select each image
For Each image As IronXL.Drawing.Images.IImage In images
	' Save the image
	Dim anyBitmap As AnyBitmap = image.ToAnyBitmap()
	anyBitmap.SaveAs($"{image.Id}.png")

	' Resize the image
	image.Resize(1,3)

	' Retrieve image position
	Dim position As Position = image.Position
	Console.WriteLine("top row index: " & position.TopRowIndex)
	Console.WriteLine("bottom row index: " & position.BottomRowIndex)

	' Retrieve byte data
	Dim imageByte() As Byte = image.Data
Next image

workBook.SaveAs("resizeImage.xlsx")
$vbLabelText   $csharpLabel
File explorer showing extracted PNG images and files in Documents/Replicate/bin/Debug/net6.0 directory
Spreadsheet showing three extracted images positioned in cells C2-E2, C5-E6, and C8-E10 with coordinate grid

Excelワークシートから画像を削除するには?

Following the extract images example, you can easily remove any inserted image using its corresponding index number. 画像のID番号をRemoveImageメソッドに渡すと、ワークシートから画像が削除されます。 この作業は、C#でExcelファイルを編集して不要なビジュアル要素を整理したり、さまざまな読者向けの文書を作成したりする必要がある場合に特に役立ちます。

削除プロセスは簡単ですが、画像IDシステムを理解する必要があります。 IronXLはIDを奇数列(1、3、5、7...)で割り当てますので、複数の画像を管理する場合はこれらのIDを追跡してください。 アプリケーションにマッピングシステムを実装して、意味のある名前と画像IDを関連付け、管理を容易にすることを検討してください。

:path=/static-assets/excel/content-code-examples/how-to/add-remove-extract-worksheet-images-remove.cs
using IronXL;

WorkBook workBook = WorkBook.Load("insertImages.xlsx");
WorkSheet workSheet = workBook.DefaultWorkSheet;

// Remove image
workSheet.RemoveImage(3);

workBook.SaveAs("removeImage.xlsx");
Imports IronXL

Private workBook As WorkBook = WorkBook.Load("insertImages.xlsx")
Private workSheet As WorkSheet = workBook.DefaultWorkSheet

' Remove image
workSheet.RemoveImage(3)

workBook.SaveAs("removeImage.xlsx")
$vbLabelText   $csharpLabel

複数のワークシートと画像を含むより複雑なシナリオについては、ワークシートの管理を調べて、画像操作がワークシートレベルの操作とどのように相互作用するかを理解してください。 さらに、保護された Excel ファイルを扱う場合は、Excel ファイルの保護に関するガイドを参照して、パスワードで保護されたワークブックで画像操作がどのように機能するかを理解してください。

よくある質問

C#でプログラム的にExcelスプレッドシートに画像を追加するにはどうすればよいですか?

IronXLはExcelのワークシートに画像を追加するInsertImageメソッドを提供しています。画像ファイルのパスと、画像を表示したいセル範囲の座標(左上隅と右下隅)を指定するだけです。IronXLはJPG/JPEG、BMP、PNG、GIF、TIFFなどさまざまな画像形式をサポートしています。

Excelに画像を挿入する場合、どのような画像形式がサポートされていますか?

IronXLはJPG/JPEG、BMP、PNG、GIF、TIFFなど、エクセルのワークシートに挿入できる複数の画像形式をサポートしています。この柔軟性により、ビジネス文書やデータの視覚化で一般的に使用されるさまざまな種類の画像を扱うことができます。

Excelワークシートから既存の画像を抽出する方法を教えてください。

IronXLのImagesコレクション・プロパティを使ってExcelワークシートから画像を抽出することができます。worksheet.Images[index]にアクセスして、特定の画像をそのプロパティやメタデータとともに取得し、他のドキュメントやアプリケーションで再利用することができます。

プログラムでExcelファイルから画像を削除できますか?

はい、IronXLはワークシートから画像を削除するRemoveImageメソッドを提供しています。画像IDを指定するだけで特定の画像を削除できますので、Excelのインターオプを必要とせずに画像管理を完全に制御できます。

挿入する画像のサイズと位置を指定するにはどうすればよいですか?

IronXLのInsertImageメソッドを使用する場合、開始列、開始行、終了列、終了行の4つの座標を指定します。画像は定義されたセル範囲に収まるように自動的に伸縮します。例えば、InsertImage("image.gif", 5, 1, 6, 2)は1x1の画像サイズを作成します。

スプレッドシートで画像を操作するには、Microsoft Excelをインストールする必要がありますか?

IronXLはMicrosoft ExcelやExcel Interopに依存することなく独立して動作します。.NETアプリケーションでIronXLライブラリを使用するだけで、プログラム的にExcelファイルから画像を追加、抽出、削除することができます。

Chaknith Bin
ソフトウェアエンジニア
ChaknithはIronXLとIronBarcodeに取り組んでいます。彼はC#と.NETの深い専門知識を持ち、ソフトウェアの改善や顧客サポートに貢献しています。ユーザーとの対話から得られる洞察が、より良い製品、ドキュメント、および全体的な経験に寄与しています。
準備はできましたか?
Nuget ダウンロード 1,765,830 | バージョン: 2025.12 リリース