雄狮不再低调 發表於 2026-1-6 08:17:22

使用C#代码实现将图片插入到Excel中

<div id="navCategory"><h5 class="catalogue">目录</h5><ul class="first_class_ul"><li>安装 Spire.XLS for .NET</li><li>在 C# 和 VB.NET 中将磁盘中的图片插入到 Excel 中</li><li>在 C# 和 VB.NET 中将网络图片(通过 URL)插入到 Excel 中</li><li>方法补充</li></ul></div><p>图片是一种直观、高效的信息表达方式。在实际工作中,常常需要在 Excel 报告中插入图片,帮助读者更快、更清晰地理解内容和意图。本文将以 <strong>Spire.XLS for .NET</strong> 为例,介绍如何使用 <strong>C#</strong> 和 <strong>VB.NET</strong> 在 Excel 文档中插入图片。</p>
<p class="maodian"></p><h2>安装 Spire.XLS for .NET</h2>
<p>首先,您需要在 .NET 项目中添加 <strong>Spire.XLS for .NET</strong> 包中包含的 DLL 文件作为引用。您可以通过下载链接手动获取 DLL 文件,或者直接使用 <strong>NuGet</strong> 进行安装。</p>
<div class="jb51code"><pre class="brush:bash;">PM&gt; Install-Package Spire.XLS</pre></div>
<p class="maodian"></p><h2>在 C# 和 VB.NET 中将磁盘中的图片插入到 Excel 中</h2>
<p>以下是在 Excel 中从本地磁盘插入图片的操作步骤:</p>
<ul><li>初始化一个 <strong>Workbook</strong> 实例。</li><li>通过 <strong>Workbook.Worksheets</strong> 属性获取指定的工作表。</li><li>使用 <strong>Worksheet.Pictures.Add()</strong> 方法将图片插入到工作表中。</li><li>调用 <strong>Workbook.SaveToFile()</strong> 方法保存生成的文件。</li></ul>
<p><strong>具体示例代码如下:</strong></p>
<div class="jb51code"><pre class="brush:csharp;">using Spire.Xls;

namespace InsertImageInExcel
{
    class Program
    {
      static void Main(string[] args)
      {
            // 初始化一个 Workbook 实例
            Workbook workbook = new Workbook();
            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets;

            // 将图片插入到工作表中
            sheet.Pictures.Add(1, 1, @"E:\work\sample.jpg");

            // 保存生成的文件
            workbook.SaveToFile("InsertImageFromDisk.xlsx", ExcelVersion.Version2016);
      }
    }
}</pre></div>
<p class="maodian"></p><h2>在 C# 和 VB.NET 中将网络图片(通过 URL)插入到 Excel 中</h2>
<p>以下是在 Excel 中通过 URL 插入网络图片的操作步骤:</p>
<ul><li>初始化一个 <strong>Workbook</strong> 实例。</li><li>通过 <strong>Workbook.Worksheets</strong> 属性获取指定的工作表。</li><li>初始化一个 <strong>WebClient</strong> 实例,并使用 <strong>WebClient.DownloadData(urlAddress)</strong> 方法从指定的 URL 下载网络图片,获取字节数组。</li><li>使用该字节数组初始化一个 <strong>MemoryStream</strong> 实例。</li><li>通过内存流创建一个 <strong>Image</strong> 对象,然后使用 <strong>Worksheet.Pictures.Add()</strong> 方法将图片插入到工作表中。</li><li>调用 <strong>Workbook.SaveToFile()</strong> 方法保存生成的文件。</li></ul>
<p><strong>具体示例代码如下:</strong></p>
<div class="jb51code"><pre class="brush:csharp;">using Spire.Xls;
using System.Drawing;
using System.IO;
using System.Net;

namespace InsertWebImageInExcel
{
    class Program
    {
      static void Main(string[] args)
      {
            // 初始化一个 Workbook 实例
            Workbook workbook = new Workbook();

            // 获取第一个工作表
            Worksheet sheet = workbook.Worksheets;

            // 指定图片的 URL 地址
            string URL = "https://www.e-iceblue.com/downloads/demo/Logo.png";

            // 初始化 WebClient 实例
            WebClient webClient = new WebClient();
            // 从指定 URL 下载图片并获取字节数组
            byte[] imageData = webClient.DownloadData(URL);

            // 使用字节数组初始化 MemoryStream 实例
            MemoryStream objImage = new MemoryStream(imageData);

            // 通过内存流创建 Image 对象
            Image image = Image.FromStream(objImage);

            // 将图片插入到工作表中
            sheet.Pictures.Add(3, 2, image);

            // 保存生成的文件
            workbook.SaveToFile("InsertWebImage.xlsx", ExcelVersion.Version2016);
      }
    }
}
</pre></div>
<p class="maodian"></p><h2>方法补充</h2>
<p>1、C#代码 向Excel文档写入图片,放置指定的单元格</p>
<div class="jb51code"><pre class="brush:csharp;">            using (var workbook = new XLWorkbook())
            {

                  //插入图片到excel文档指定的列中
                  if (!string.IsNullOrEmpty(templateDto.Count &gt; 0 ? templateDto.imagePath : ""))
                  {
                        string imagePath = templateDto.imagePath;
                        using (var ms = new FileStream(imagePath, FileMode.Open))
                        {
                            // 添加一个工作表
                            var worksheet = workbook.Worksheets.Add("Sheet1");
                            var picture = worksheet.AddPicture(ms);
                            var cell = worksheet.Cell("C1"); // 指定起始单元格
                            picture.MoveTo(cell);
                        } // 文件流在此处自动关闭

                        if (File.Exists(imagePath))
                        {
                            File.Delete(imagePath);
                        }
                  }

                  // 保存工作簿
                  workbook.SaveAs("exampleWithImage.xlsx");
                }
            }</pre></div>
<p>2、C#使用NPOI在Excel中插入图片</p>
<p>下面代码展示了如何在Excel工作簿中使用HSSFWorkbook类添加图片。首先创建工作簿,然后将图片数据以PNG格式添加,接着获取名为稽核主页的sheet页,创建绘图父元素,定义图片的锚点坐标,最后在指定位置插入图片</p>
<div class="jb51code"><pre class="brush:csharp;">//Excel 可以创建两种 HSSFWorkbookXSSFWorkbook
IWorkbook wb = new HSSFWorkbook(ms);

//加入图片    pic["PlacodeQPA"] 为图片的byte[],PictureType.PNG 为图片的类型            
int ip = wb.AddPicture(pic["PlacodeQPA"], PictureType.PNG);
//获取sheet页,可以根据sheet页名称获取,也可以根据sheet页索引(从0开始)获取
//sheet = wb.GetSheetAt(0);   
//先将图片加入wb中,再去获取sheet页!!!               
sheet = wb.GetSheet("稽核主页");
                  
IDrawing drawing = sheet.CreateDrawingPatriarch();
                  
IClientAnchor anchor = wb.GetCreationHelper().CreateClientAnchor();
//左上角的行                  
anchor.Row1 = 28;
//左上角的列                  
anchor.Col1 = 1;
//右下角的行                  
anchor.Row2 = 38;
//右下角的列                     
anchor.Col2 = 4;
                  
IPicture picture = drawing.CreatePicture(anchor, ip);</pre></div>
<p>到此这篇关于使用C#代码实现将图片插入到Excel中的文章就介绍到这了,更多相关C#图片插入Excel内容请搜索琼殿技术社区以前的文章或继续浏览下面的相关文章希望大家以后多多支持琼殿技术社区!</p>
                           
                            <div class="art_xg">
                              <b>您可能感兴趣的文章:</b><ul><li>C#实现将Excel表格转换为图片(JPG/ PNG)</li><li>c#使用EPPlus将图片流嵌入到Excel实现示例</li><li>C#实现获取Excel中图片所在坐标位置</li><li>C#插入图片到Excel表格单元格代码详解</li><li>C#删除Excel中的图片实例代码</li><li>c# 应用NPOI获取Excel中的图片,保存至本地的算法</li></ul>
                            </div>

                        </div>
                        <!--endmain-->
頁: [1]
查看完整版本: 使用C#代码实现将图片插入到Excel中