IRONSOFTWAREHOME

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

Curtis Chau
Curtis Chau
Updated: 2026年4月22日

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

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

クイックスタート: 挿入、抽出 & ワンゴーで画像を削除

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

  1. 1Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

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

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

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

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

スプレッドシートに画像を挿入するには、InsertImageメソッドを使用してください。このメソッドは、JPG/JPEG、BMP、PNG、GIF、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が付与されます。

ご注意: 生成された画像IDは1、3、5、7などのパターンに従います。

この奇数のシーケンスは、後で特定の画像を抽出または削除操作で参照する際に重要です。

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");

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

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

2つのカラフルなロゴがセルC4とC7に挿入されたスプレッドシート。

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

選択したワークシートから画像を抽出するには、Imagesプロパティにアクセスします。 この機能は、Interop なしで Excel ファイルをロードし、埋め込まれたビジュアル コンテンツを処理する必要がある場合に不可欠です。 このリストから、画像のエクスポート、サイズ変更、位置の取得、各画像のバイトデータの取得など、さまざまな操作を実行できます。 画像IDは奇数パターンで、1、3、5、7......の順に増加します。

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

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

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

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");
Documents/Replicate/bin/Debug/net6.0 ディレクトリ内の抽出された PNG 画像とファイルを示すファイルエクスプローラー
座標グリッドとともに、セル C2-E2、C5-E6、C8-E10 に配置された 3 つの抽出画像を示すスプレッドシート

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

画像抽出の例に続いて、対応するインデックス番号を使用して簡単に挿入した画像を削除することができます。 画像のID番号をRemoveImageメソッドに渡して、ワークシートから削除します。 この作業は、C#でExcelファイルを編集して不要なビジュアル要素を整理したり、さまざまな読者向けの文書を作成したりする必要がある場合に特に役立ちます。

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

using IronXL;

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

// Remove image
workSheet.RemoveImage(3);

workBook.SaveAs("removeImage.xlsx");

複数のワークシートと画像を含むより複雑なシナリオについては、ワークシートの管理を調べて、画像操作がワークシートレベルの操作とどのように相互作用するかを理解してください。 さらに、保護された 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ファイルから画像を追加、抽出、削除することができます。

Does IronXL require Excel Interop to manage images in Excel files?

No, IronXL does not require Excel Interop. It fully supports adding, extracting, and removing images from Excel files programmatically, eliminating the need for Microsoft Office dependencies.

How can I retain the position of images when extracting them from Excel files with IronXL?

When extracting images with IronXL, you can retrieve their position data, including row and column indices, to preserve layout and positioning information.

Why would I use IronXL for image manipulation in Excel workbooks?

IronXL simplifies image manipulation in Excel, allowing for consistent placement, extraction, and removal of images programmatically without reliance on manual processes or Excel Interop.

Can IronXL handle images in password-protected Excel files?

Yes, IronXL can work with password-protected Excel files. You may need to manage worksheet-level operations to ensure compatibility with image manipulation.

Curtis Chau
テクニカルライター

Curtis Chauは、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。

...
詳しく読む

準備はできましたか?

Nuget Downloads 2,237,574バージョン:2026.9リリースされたばかり

無料をゲット

30日間の試用キーをすぐに取得。

bullet_checkedクレジットカードやアカウントの作成は不要です。
bullet_test製品版でのテスト
透かしなし
bullet_calendar30日間
完全機能の製品
bullet_support試用期間中の
24/5テクニカルサポート
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。
PDF用C# NuGetライブラリ
NuGetでインストール

バージョン: 2026.9

PM > Install-Package IronXL.Excel
nuget.org/packages/IronXL.Excel/
  1. ソリューションエクスプローラーで参照を右クリックし、NuGetパッケージを管理を選択
  2. 参照選択し、"IronXL"を検索
  3. パッケージを選択してインストール
C# PDF DLL
DLLをダウンロード

バージョン: 2026.9

  1. IronXLを~/Libsなどの場所にダウンロードし、ソリューションディレクトリに解凍します
  2. Visual Studioのソリューションエクスプローラ内で参照を右クリックし、を選択「IronXL.dll」参照選択

ライセンス$999から

Key in blue circle

無料の30日間トライアルキーをすぐに入手してください。

Your trial license will be sent to your email address

制限なし。100% ロック解除済み。クレジットカード不要。

bullet_checkedクレジットカードやアカウントの作成は不要です。制限なし。100% ロック解除済み。クレジットカード不要。
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
無料のライブデモを予約する
Booking Badge

世界中の数百万人のエンジニアから信頼されています。

ライセンスはより安く
義務のない相談を受ける
下記のフォームを記入するか、sales@ironsoftware.comにメールしてください。
あなたの詳細は常に守秘されます。
世界中の数百万人のエンジニアから信頼されています。
ライセンスはより安く
あなたの無料30日間の試用キーをすぐに入手。
クレジットカードやアカウントの作成は不要です。