如何添加、提取和移除工作表中的圖片 | IronXL

如何使用 C# 在 Excel 中新增、擷取和刪除影像

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

使用者可以透過添加圖片,利用相關的圖形或插圖來豐富數據。 移除或刪除圖片可以簡化內容編輯和整理。 此外,檢索影像的功能允許在其他文件或應用程式中重新利用它們,以及更新現有影像。 這些功能共同增強了使用者對影像的控制能力,改善了整體使用者體驗,並實現了在 Excel 工作簿中無縫處理影像。

快速入門:一次插入、提取和刪除圖像

使用 IronXL 直覺的 API,只需幾行程式碼即可在工作表中新增、取得和刪除影像。 此範例展示了插入影像、透過 Images 集合存取影像以及刪除影像是多麼容易——所有這些都無需接觸 Interop。

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


新增圖片範例

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. 要確定影像的尺寸,必須指定影像的左上角和右下角,尺寸計算方法是用列值和行值相減。 例如,您可以嘗試以下方法:

  • 對於 1x1 的圖像尺寸:
    • worksheet.InsertImage("image.gif", 5, 1, 6, 2);
  • 對於 2x2 的圖像尺寸:
    • worksheet.InsertImage("image.gif", 5, 1, 7, 3);

產生的影像 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

輸出電子表格

插入圖片

提取圖像範例

To extract images from the selected worksheet, simply access the Images property, which provides a list of all the images contained within the sheet. 透過此列表,您可以執行各種操作,例如匯出、調整大小、檢索位置以及獲取每張圖像的位元組資料。 值得注意的是,影像 ID 遵循奇數模式,以 1、3、5、7 等順序遞增。

: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
提取的圖像
圖片尺寸

移除影像範例

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,738,553 | Version: 2025.11 剛發表