C#を使用してExcelで画像を追加、抽出、削除する方法: xlsxファイル操作ガイド
IronXLはC#の開発者がExcelのワークシートにプログラムで画像を挿入したり、既存の画像をプロパティとともに抽出したり、Excel Interopに依存することなくシンプルなAPIメソッドで不要な画像を削除したりすることを可能にします。 xlsxファイルのスプレッドシート作成において、会社のロゴ、製品画像、データの視覚化グラフィックなどの視覚的要素を必要とするExcelファイルを.NETで作成する場合に不可欠です。
画像を追加すると、関連するグラフィックやイラストでデータが豊かになります。 画像を削除することで、コンテンツの編集と構成が簡単になります。 画像を抽出することで、他の文書やアプリケーションで画像を再利用したり、既存の画像を更新したりすることができます。 これらの機能は、Excelワークブック内での画像操作を完全に制御します。
クイックスタート: 一度に挿入、抽出、削除
IronXLの直感的なAPIを使用し、わずか数行でワークシートから画像を追加、取得、削除することができます。 この例では、画像を挿入し、Images コレクションを介してアクセスし、削除する方法を示します。
最小限のワークフロー(5ステップ)
- スプレッドシートに画像を挿入、抽出、削除するための C# ライブラリをダウンロードします
- 既存のExcelファイルをインポートするか、新しいファイルを作成します
InsertImageメソッドを使用してワークシートに画像を挿入します- 画像とその情報を抽出するためにImagesプロパティにアクセスします
- 画像を削除するには、
RemoveImageメソッドにIDを指定します。
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")
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")
抽出された画像
画像サイズ
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")
複数のワークシートと画像を含むより複雑なシナリオについては、ワークシートの管理を調べて、画像操作がワークシートレベルの操作とどのように相互作用するかを理解してください。 さらに、保護された 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ファイルから画像を追加、抽出、削除することができます。

