C# 添加、替换、提取、或删除Excel中的图片

embedded/2025/2/4 14:14:05/

在Excel中插入与数据相关的图片,能将关键数据或信息以更直观的方式呈现出来,使文档更加美观。此外,对于已有图片,你有事可能需要更新图片以确保信息的准确性,或者将Excel 中的图片单独保存,用于资料归档、备份或在其他项目中重复使用。
本文将介绍如何在.NET 程序中通过C# 在Excel中插入图片,或者替换、提取、删除Excel中的图片

本文需要用到一个免费库 Free Spire.XLS for .NET。该库可以在Visual > Studio > NuGet程序包管理器中搜索 “FreeSpire.XLS” 来安装。也可以通过下列链接下载产品包后手动添加引用。

https://www.e-iceblue.cn/Downloads/Free-Spire-XLS-NET.html

C# 在Excel中插入图片

免费Spire.XLS库提供的 Worksheet.Pictures.Add(int topRow, int leftColumn, Image image) 方法可在工作表指定单元格中插入图片,并返回一个 ExcelPicture 对象。然后你可以通过ExcelPicture类下的各属性设置图片的宽度、高度、与单元格边框的距离等。

C#代码:

using Spire.Xls;namespace InsertImageInExcel
{class Program{static void Main(string[] args){// 创建工作簿Workbook workbook = new Workbook();// 获取第一张工作表Worksheet sheet = workbook.Worksheets[0];// 在指定单元格中插入图片(此处为第一行第二列,即B1单元格)ExcelPicture pic = sheet.Pictures.Add(1, 2, "示例.png");// 设置图片宽高度pic.Width = 120;pic.Height = 120;// 调整图片所在位置的列宽和行高sheet.Columns[1].ColumnWidth = 20;sheet.Rows[0].RowHeight = 110;// 设置单元格边框与图片之间的距离pic.LeftColumnOffset = 90;pic.TopRowOffset = 20;// 保存Excel文件workbook.SaveToFile("插入图片.xlsx", ExcelVersion.Version2016);}}
}

Excel插入图片

C# 替换Excel中的图片

要替换Excel中的图片,我们可以先通过 Worksheet.Pictures[index] 属性获取工作表中指定的图片,然后加载一张新图片并将其赋值给 ExcelPicturePicture 属性,从而完成图片的替换操作。

C#代码:

using Spire.Xls;
using Spire.Xls.Collections;
using System.Drawing;namespace ReplacePictureinExcel
{class Program{static void Main(string[] args){// 加载Excel文档Workbook workbook = new Workbook();workbook.LoadFromFile("插入图片.xlsx");// 获取第一张工作表Worksheet sheet = workbook.Worksheets[0];// 取工作表中第一张图片ExcelPicture pic = sheet.Pictures[0];// 替换图片pic.Picture = Image.FromFile("pic.jpg");// 保存文档workbook.SaveToFile("替换图片.xlsx", ExcelVersion.Version2016);}}
}

替换Excel图片

C# 提取Excel中的图片

提取Excel中的图片的实现思路为先遍历工作表中的所有图片,然后通过 ExcelPicture.Picture.Save() 方法将每一张图片保存到指定的文件路径。

C#代码:

using Spire.Xls;namespace ExtractImages
{class Program{static void Main(string[] args){// 加载Excel文档Workbook workbook = new Workbook();workbook.LoadFromFile("图标.xlsx");// 获取第一张工作表Worksheet sheet = workbook.Worksheets[0];// 遍历工作表中所有图片for (int i = sheet.Pictures.Count - 1; i >= 0; i--){// 提取图片保存到指定路径ExcelPicture picture = sheet.Pictures[i];picture.Picture.Save(string.Format("提取图片\\图片-{0}.png", i));}}}
}

提取Excel图片

C# 删除Excel中的图片

对于Excel中的不相关或错误图片,我们可以使用 Worksheet.Pictures[index].Remove() 方法通过索引删除指定图片。要删除所有图片,可以遍历每张图片然后删除。

C#代码:

using Spire.Xls;namespace DeleteImages
{class Program{static void Main(string[] args){// 加载Excel文档Workbook workbook = new Workbook();workbook.LoadFromFile("图标.xlsx");// 获取第一张工作表Worksheet sheet = workbook.Worksheets[0];// 遍历每一张图片并删除for (int i = sheet.Pictures.Count - 1; i >= 0; i--){sheet.Pictures[i].Remove();}// 保存文档workbook.SaveToFile("删除图片.xlsx", ExcelVersion.Version2016);}}
}

删除Excel图片


除了操作Excel工作表中的图片外,免费库Free Spire.XLS for .NET 还支持操作多其他种元素,如形状、图表、超链接、水印等。更多功能教程可查看:Spire.XLS for .NET 中文教程


http://www.ppmy.cn/embedded/159483.html

相关文章

你还在用idea吗

从VIM、Emacs,到eclipse、Jetbrains, 再到VSCode,过去的三十年时间,出现了这三代IDE产品。现在属于AI的时代来了,最新一代的产品像Cursor、Windsurf,就在昨天,字节跳动发布了最新的IDE,就叫Trae…

pytorch线性回归模型预测房价例子

人工智能例子汇总:AI常见的算法和例子-CSDN博客 import torch import torch.nn as nn import torch.optim as optim import numpy as np# 1. 创建线性回归模型类 class LinearRegressionModel(nn.Module):def __init__(self):super(LinearRegressionModel, self).…

单细胞-第五节 多样本数据分析,打分R包AUCell

文件在单细胞\5_GC_py\1_single_cell\3.AUCell.Rmd 1.基因 rm(list = ls()) load("g.Rdata")2.AUCell https://www.ncbi.nlm.nih.gov/pmc/articles/PMC9897923 IF: NA NA NA用这个文章里的方法,将单细胞亚群的marker基因与ros相关基因取交集,用作AUCell的基因集…

RabbitMQ持久化队列配置修改问题

文章目录 1.问题产生2.问题解决1.询问gpt2.独立思考 1.问题产生 我在给一个普通队列去绑定死信交换机和死信队列的时候,发现总是报错x-dead-letter-exchange的属性为none ERROR [PFTID:] [Module:defaultModule] org.springframework.amqp.rabbit.connection.Cach…

论文笔记(六十三)Understanding Diffusion Models: A Unified Perspective(五)

Understanding Diffusion Models: A Unified Perspective(五) 文章概括基于得分的生成模型(Score-based Generative Models) 文章概括 引用: article{luo2022understanding,title{Understanding diffusion models: A…

https的原理

HTTPS 的原理 HTTPS(HyperText Transfer Protocol Secure)是一种通过计算机网络进行安全通信的传输协议。它在 HTTP 的基础上增加了 SSL/TLS 协议,以实现数据传输的安全性和完整性。以下是 HTTPS 的基本原理: 1. 基本概念 HTTP…

制造业设备状态监控与生产优化实战:基于SQL的序列分析与状态机建模

目录 1. 背景与挑战 2. 数据建模与采集 2.1 数据表设计 设备状态表(记录设备实时状态变更)

RAG:实现基于本地知识库结合大模型生成(LangChain4j快速入门#1)

引言 ⭐Tips: 你可以循序渐进从头看下去也可以选择直接跳到后面(快速入门)看代码和结果演示 场景解释以及适用场景 当我想让大模型能基于我私有化的一些本地知识进行回答,定制化特殊场景模型的时候,就可以用到这种方法。 示例1:…