C#を使用してExcelで画像を追加、抽出、削除する方法
IronXLはC#の開発者がExcelのワークシートにプログラムで画像を挿入したり、既存の画像をプロパティとともに抽出したり、Excel Interopに依存することなくシンプルなAPIメソッドで不要な画像を削除したりすることを可能にします。 この機能は、会社のロゴ、製品画像、データの視覚化グラフィックなどの視覚的要素を必要とするExcelファイルを.NETで作成する場合に不可欠です。
画像を追加すると、関連するグラフィックやイラストでデータが豊かになります。 画像を削除することで、コンテンツの編集と構成が簡単になります。 画像を抽出することで、他の文書やアプリケーションで画像を再利用したり、既存の画像を更新したりすることができます。 これらの機能は、Excelワークブック内での画像操作を完全に制御します。
クイックスタート: 挿入、抽出 & ワンゴーで画像を削除IronXLの直感的なAPIを使用し、わずか数行でワークシートから画像を追加、取得、削除することができます。 この例は、イメージを挿入し、それをImagesコレクション経由でアクセスし、削除する方法を示しています。すべてInteropに触れずに行われます。
-
1Install IronXL with NuGet Package Manager
-
2このコード スニペットをコピーして実行します。
workSheet.InsertImage("logo.png", 1, 1, 3, 3); workSheet.RemoveImage(1); var firstImage = workSheet.Images[0];C# -
3実際の環境でテストするためにデプロイする
今日プロジェクトで IronXL を使い始めましょう無料トライアル
最小限のワークフロー(5ステップ)
- スプレッドシートに画像を挿入、抽出、削除するための C# ライブラリをダウンロードします
- 既存のExcelファイルをインポートするか、新しいファイルを作成します
InsertImageメソッドを使用してワークシートに画像を挿入します- 画像とその情報を抽出するためにImagesプロパティにアクセスします
- 画像を削除するには、
RemoveImageメソッドにIDを指定します。
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が付与されます。
この奇数のシーケンスは、後で特定の画像を抽出または削除操作で参照する際に重要です。
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")InsertImageメソッドは、ワークシート内での画像の位置とサイズを柔軟に設定することができます。 Excelで手動で画像を挿入するのとは異なり、プログラムによる挿入では、複数のファイルで一貫した配置が保証されるため、標準化された書式を必要とするレポートや文書の作成に最適です。 このアプローチは、Interop なしで C# で Excel を使用する場合、Microsoft Office インストールへの依存がなくなるため、特に有益です。
Excelで挿入された画像はどのように見えますか?

どのように 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");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")
抽出された画像

画像サイズ
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");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")複数のワークシートと画像を含むより複雑なシナリオについては、ワークシートの管理を調べて、画像操作がワークシートレベルの操作とどのように相互作用するかを理解してください。 さらに、保護された 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は、カールトン大学でコンピュータサイエンスの学士号を取得し、Node.js、TypeScript、JavaScript、およびReactに精通したフロントエンド開発を専門としています。直感的で美しいユーザーインターフェースを作成することに情熱を持ち、Curtisは現代のフレームワークを用いた開発や、構造の良い視覚的に魅力的なマニュアルの作成を楽しんでいます。