如何使用 C# 在 Excel 中添加、提取和删除图像
IronXL 使 C# 开发人员能够以编程方式将图像插入 Excel 工作表,进行XLSX文件操作,提取现有图像及其属性,并使用简单的 API 方法删除不需要的图像,而无需依赖 Excel Interop。 在创建Excel表格时,这些图像管理功能至关重要。 当在.NET中创建 Excel 文件时,需要使用公司徽标、产品图像或数据可视化图形等可视化元素,因此该功能至关重要。
添加图片可通过相关图形或插图丰富数据。 删除图片可简化内容编辑和组织。 通过提取图片,可以在其他文档或应用程序中重新使用这些图片,并更新现有图片。 这些功能可完全控制 Excel 工作簿中的图像处理。
快速入门:一次性插入、提取和删除图像
使用 IronXL 直观的 API,只需几行即可添加、获取和删除工作表中的图片。 本示例展示了如何插入图片、通过图片集访问图片以及删除图片--所有这些操作都无需接触 Interop。
最小工作流程(5 个步骤)
- 下载 C# 库,用于在电子表格中插入、提取和删除图像。
- 导入现有 Excel 文件或创建一个新的
- 使用`InsertImage`方法将图像插入到工作表中。
- 访问**Images**属性以提取图像及其信息
- 将图像 ID 提供给`RemoveImage`方法即可删除图像。
如何在 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 图表并用其他可视化元素对其进行补充时,这种能力尤其有用。 指定图片的左上角和右下角以确定其尺寸,计算方法是减去列和行的值。
方法签名需要五个参数:图像文件路径,以及代表起始列、起始行、终止列和终止行的四个整数。 图像将进行拉伸或压缩,以适应定义的单元格范围。 例如:
- 对于 1x1 的图像尺寸:
worksheet.InsertImage("image.gif", 5, 1, 6, 2);
- 对于 2x2 的图像尺寸:
worksheet.InsertImage("image.gif", 5, 1, 7, 3);
在 Excel 中处理图片时,了解 IronXL 如何在内部管理图片。 每张插入的图片都会收到一个遵循特定模式的唯一 ID。
: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 中的手动图像插入不同,程序化插入可确保多个文件中的位置一致,因此非常适合生成需要标准化格式的报告或文档。 当在 C# 中使用 Excel 而无需 Interop 时,这种方法尤其有益,因为它消除了对 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 以奇数序列(1、3、5、7......)分配 ID,因此在管理多个图像时要跟踪这些 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 方法,用于在 Excel 工作表中添加图片。只需指定图片文件路径和希望图片出现的单元格区域坐标(左上角和右下角)即可。IronXL 支持多种图像格式,包括 JPG/JPEG、BMP、PNG、GIF 和 TIFF。
在 Excel 中插入图片时支持哪些图片格式?
IronXL.Excel 支持插入 Excel 工作表的多种图像格式,包括 JPG/JPEG、BMP、PNG、GIF 和 TIFF。这种灵活性使您可以处理商业文档和数据可视化中常用的各种图像类型。
如何从 Excel 工作表中提取现有图像?
您可以使用 IronXL.Excel 的 Images 集合属性从 Excel 工作表中提取图像。访问 worksheet.Images[index],即可检索特定图像及其属性和元数据,从而在其他文档或应用程序中重新使用这些图像。
能否以编程方式删除 Excel 文件中的图像?
是的,IronXL 提供了 RemoveImage 方法来删除工作表中的图片。只需提供图像 ID 即可删除特定图像,让您无需 Excel Interop 即可完全控制图像管理。
如何指定插入图片的大小和位置?
使用 IronXL 的 InsertImage 方法时,您需要指定四个坐标:起始列、起始行、终止列和终止行。图像会自动拉伸或压缩,以适应定义的单元格范围。例如,InsertImage("image.gif", 5, 1, 6, 2) 创建的图像大小为 1x1。
我需要安装 Microsoft Excel 才能在电子表格中处理图像吗?
不,IronXL.Excel 可独立运行,无需 Microsoft Excel 或 Excel Interop 依赖项。只需在您的 .NET 应用程序中使用 IronXL for .NET 库,您就可以通过编程从 Excel 文件中添加、提取和删除图像。

