使用C#和VBA将Excel中的图表保存为图片的操作指南

 更新时间:2025年06月16日 10:18:54   作者:Eiceblue  
在Excel报表自动化生成和图表内容复用的场景中,将图表导出为图片是一个非常常见的需求,我们可以使用C#代码实现批量图表图片导出,也可以借助VBA在Excel中一键导出图表为图片,本文将介绍如何使用 C# 和 VBA 将 Excel 中的图表保存为图片,需要的朋友可以参考下

引言

在Excel报表自动化生成和图表内容复用的场景中,将图表导出为图片是一个非常常见的需求,例如用于嵌入PPT报告、发送邮件展示、网页可视化展示等。我们可以使用C#代码实现批量图表图片导出,也可以借助VBA在Excel中一键导出图表为图片。

本文将介绍如何使用 C# 和 VBA 将 Excel 中的图表保存为图片,并提供完整的代码示例和操作指导。

使用 C# 将 Excel 图表保存为图片

在 .NET 环境下,我们可以使用 Free Spire.XLS for .NET 轻松实现批量读取 Excel 文件中的图表并导出为 .jpg 格式图片。

安装 Spire.XLS

通过 NuGet 安装 Spire.XLS:

Install-Package FreeSpire.XLS

C# 示例代码

using Spire.Xls;
using System.Drawing;

Workbook workbook = new Workbook();
workbook.LoadFromFile("Sample.xlsx");

// 遍历所有工作表及其图表,保存为图片
foreach (Worksheet sheet in workbook.Worksheets)
{
    foreach (Chart chart in sheet.Charts)
    {
        Bitmap chartImage = chart.SaveToImage();
        chartImage.Save($"output/{sheet.Name} - {chart.ChartTitle}.jpg");
    }
}
workbook.Dispose();

操作说明

  • 载入已有的 Excel 文件;
  • 遍历工作簿中所有工作表;
  • 遍历每个工作表中的图表(Chart)对象;
  • 使用 SaveToImage() 方法将图表保存为 Bitmap 图像;
  • 将图像保存为 .jpg 文件。

适用场景:C# 批量自动导出图表图像,用于后台程序、报表系统等。

使用 VBA 将 Excel 图表保存为图片

如果你想直接在 Excel 中导出当前工作簿的图表为图片,可以使用 VBA 宏快速实现,无需额外安装插件或库。

VBA 代码示例

Sub SaveAllChartsAsImages()
    Dim ws As Worksheet
    Dim chartObj As ChartObject
    Dim folderPath As String
    Dim chartIndex As Integer
    Dim fileName As String
    
    ' 设置保存路径
    folderPath = ThisWorkbook.Path & "\Charts"
    If Dir(folderPath, vbDirectory) = "" Then MkDir folderPath
    
    chartIndex = 1 ' 图片命名编号
    
    ' 遍历所有工作表
    For Each ws In ThisWorkbook.Worksheets
        ' 遍历工作表中的所有图表对象
        For Each chartObj In ws.ChartObjects
            fileName = folderPath & "\" & ws.Name & "_Chart" & chartIndex & ".jpg"
            chartObj.Chart.Export Filename:=fileName, FilterName:="JPG"
            chartIndex = chartIndex + 1
        Next chartObj
    Next ws
    
    MsgBox "所有图表已保存为图片。", vbInformation
End Sub

操作步骤

  • 打开 Excel 文件
  • 按下 Alt + F11 打开 VBA 编辑器
  • 插入一个新模块(菜单栏:插入 > 模块);
  • 粘贴上述代码
  • 按 F5 运行宏
  • Excel 会在当前文件所在目录中创建 Charts 文件夹,并将所有图表以 .jpg 格式导出至该目录。

适用场景:无需安装环境,适合非程序员用户在 Excel 中快速导出图表图片。

效果展示

导出的图表图像示例(使用 C#):

总结

方法优势适合人群
C# + Spire.XLS支持批量处理、嵌入系统、自动化程度高开发者、系统集成
Excel VBA 宏无需额外组件、操作直观办公用户、无开发经验者

无论你是希望实现图表自动化导出,还是手动快速生成图表图像,这两种方式都能满足不同场景下的需求。

以上就是使用C#和VBA将Excel中的图表保存为图片的操作指南的详细内容,更多关于C# VBA将Excel图表保存图片的资料请关注脚本之家其它相关文章!

相关文章

  • C# winForm自定义弹出页面效果

    C# winForm自定义弹出页面效果

    这篇文章主要为大家详细介绍了C# winForm自定义弹出页面效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-02-02
  • C#如何实现用户名与密码登录

    C#如何实现用户名与密码登录

    这篇文章主要介绍了C#如何实现用户名与密码登录问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2023-07-07
  • C# Socket粘包处理讲解示例

    C# Socket粘包处理讲解示例

    这篇文章主要介绍了C# Socket粘包处理讲解,大家可以参考使用
    2013-12-12
  • C#中Predicate<T>与Func<T, bool>泛型委托的用法实例

    C#中Predicate<T>与Func<T, bool>泛型委托的用法实例

    这篇文章主要介绍了C#中Predicate<T>与Func<T, bool>泛型委托的用法,指出了其用法中的误区及易错点,有助于更好的理解泛型委托的用法,需要的朋友可以参考下
    2014-09-09
  • C#中Datetimepicker出现问题的解决方法

    C#中Datetimepicker出现问题的解决方法

    这篇文章主要给大家介绍了关于C#中Datetimepicker出现问题的解决方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • 客户端实现蓝牙接收(C#)知识总结

    客户端实现蓝牙接收(C#)知识总结

    网上有关蓝牙接收的资料很多,使用起来也很简单,但是我觉得还是有必要把这些知识总结下来,蓝牙开发需要用到一个第三方的库InTheHand.Net.Personal.dll,感兴趣的朋友可以了解下,或许对你有所帮助
    2013-02-02
  • WPF利用ValueConverter实现值转换器

    WPF利用ValueConverter实现值转换器

    值转换器在WPF开发中是非常常见的,值转换器可以帮助我们很轻松地实现,界面数据展示的问题。本文将通过WPF ValueConverter实现简单的值转换器,希望对大家有所帮助
    2023-03-03
  • C#调用WebService的实现方法

    C#调用WebService的实现方法

    这篇文章主要介绍了C#调用WebService的实现方法,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2025-06-06
  • C#发送和接收HTTP请求类HttpWebRequest的用法

    C#发送和接收HTTP请求类HttpWebRequest的用法

    这篇文章主要给大家介绍了关于C#发送和接收HTTP请求类HttpWebRequest用法的相关资料,C#中的HttpWebRequest是一个用于发送HTTP请求的类,它可以用于向Web服务器发送GET、POST、PUT、DELETE等请求,需要的朋友可以参考下
    2024-06-06
  • Unity之绕轴进行旋转的操作

    Unity之绕轴进行旋转的操作

    这篇文章主要介绍了Unity之绕轴进行旋转的操作,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-04-04

最新评论