如何从工作表中添加、提取和删除图像 | IronXL

How to Add, Extract, and Remove Images from Worksheets

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

By adding images, users can enrich their data with relevant graphics or illustrations. Removing or deleting images simplifies content editing and organization. Additionally, the ability to retrieve images allows for repurposing them in other documents or applications, as well as updating existing images. Collectively, these features enhance user control over images, improve the overall user experience, and enable seamless image manipulation within Excel workbooks.

Quickstart: Insert, Extract & Remove Images in One Go

Use IronXL’s intuitive API to add, get, and delete images from worksheets in just a few lines. This example shows how easy it is to insert an image, access it via the Images collection, and then remove it—all without ever touching Interop.

Nuget IconGet started making PDFs with NuGet now:

  1. Install IronXL with NuGet Package Manager

    PM > Install-Package IronXL.Excel

  2. Copy and run this code snippet.

    workSheet.InsertImage("logo.png", 1, 1, 3, 3);
    workSheet.RemoveImage(1);
    var firstImage = workSheet.Images[0];
  3. Deploy to test on your live environment

    Start using IronXL in your project today with a free trial
    arrow pointer


Add Images Example

To insert an image into a spreadsheet, utilize the InsertImage method, which supports various image types, such as JPG/JPEG, BMP, PNG, GIF, and TIFF. You must specify the top-left and bottom-right corners of the image to determine its dimensions, calculated by subtracting the column and row values. For example, you can try the following approaches:

  • For a 1x1 image size:
    • worksheet.InsertImage("image.gif", 5, 1, 6, 2);
  • For a 2x2 image size:
    • worksheet.InsertImage("image.gif", 5, 1, 7, 3);

请注意The generated image IDs follow a pattern of 1, 3, 5, 7, and so on.

: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

Output Spreadsheet

Insert Image

Extract Images Example

To extract images from the selected worksheet, simply access the Images property, which provides a list of all the images contained within the sheet. From this list, you can perform various operations such as exporting, resizing, retrieving positions, and obtaining the byte data of each image. Notably, the image IDs follow an odd-numbered pattern, incrementing in the sequence of 1, 3, 5, 7, and so on.

: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
Extracted Images
Image Size

Remove Image Example

Following the extract images example, you can easily remove any inserted image using its corresponding index number. Simply pass the image's ID number to the RemoveImage method to remove it from the worksheet.

: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 工作表中?

要使用 IronXL 将图像插入 Excel 工作表,请使用 InsertImage 方法。此方法允许您通过定义左上角和右下角来指定图像尺寸。支持的格式包括 JPG、BMP、PNG、GIF 和 TIFF。

在 Excel 中插入图像时支持哪些图像格式?

IronXL 支持多种图像格式以插入到 Excel 工作表中,包括 JPG/JPEG、BMP、PNG、GIF 和 TIFF。

如何从 Excel 工作表中提取图像?

要使用 IronXL 从 Excel 工作表中提取图像,请访问工作表的 Images 属性。这提供了所有图像的列表,使您能够导出、调整大小并检索其位置和字节数据。

我可以从 Excel 工作表中删除图像吗?

可以,使用 IronXL,您可以通过使用 RemoveImage 方法从 Excel 工作表中删除图像。只需将图像的 ID 传递给此方法即可将其删除。

使用 C# 开始操作 Excel 中的图像需要什么?

要开始使用 IronXL 操作 Excel 中的图像,从 NuGet 下载 IronXL C# 库并加载现有的 Excel 文件或创建一个新的。

在 IronXL 中如何生成图像 ID?

在 IronXL 中,图像 ID 按奇数模式生成,例如 1, 3, 5, 7 等。

能否导出从 Excel 工作表中提取的图像?

可以,一旦使用 IronXL 的 Images 属性提取图像后,可以使用 Export 方法导出为如 PNG 之类的格式。

如何在将图像插入 Excel 工作表时指定图像的大小?

使用 IronXL 将图像插入 Excel 工作表时,通过 InsertImage 方法提供图像的左上角和右下角以指定大小。

Chaknith Bin
软件工程师
Chaknith 在 IronXL 和 IronBarcode 工作。他在 C# 和 .NET 方面有着深厚的专业知识,帮助改进软件并支持客户。他从用户互动中获得的见解有助于更好的产品、文档和整体体验。
准备开始了吗?
Nuget 下载 1,686,155 | 版本: 2025.11 刚刚发布