使用C#和VBA將Excel中的圖表保存為圖片的操作指南
引言
在Excel報表自動化生成和圖表內(nèi)容復用的場景中,將圖表導出為圖片是一個非常常見的需求,例如用于嵌入PPT報告、發(fā)送郵件展示、網(wǎng)頁可視化展示等。我們可以使用C#代碼實現(xiàn)批量圖表圖片導出,也可以借助VBA在Excel中一鍵導出圖表為圖片。
本文將介紹如何使用 C# 和 VBA 將 Excel 中的圖表保存為圖片,并提供完整的代碼示例和操作指導。
使用 C# 將 Excel 圖表保存為圖片
在 .NET 環(huán)境下,我們可以使用 Free Spire.XLS for .NET 輕松實現(xiàn)批量讀取 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# 批量自動導出圖表圖像,用于后臺程序、報表系統(tǒng)等。
使用 VBA 將 Excel 圖表保存為圖片
如果你想直接在 Excel 中導出當前工作簿的圖表為圖片,可以使用 VBA 宏快速實現(xiàn),無需額外安裝插件或庫。
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 會在當前文件所在目錄中創(chuàng)建
Charts文件夾,并將所有圖表以.jpg格式導出至該目錄。
適用場景:無需安裝環(huán)境,適合非程序員用戶在 Excel 中快速導出圖表圖片。
效果展示
導出的圖表圖像示例(使用 C#):

總結(jié)
| 方法 | 優(yōu)勢 | 適合人群 |
|---|---|---|
| C# + Spire.XLS | 支持批量處理、嵌入系統(tǒng)、自動化程度高 | 開發(fā)者、系統(tǒng)集成 |
| Excel VBA 宏 | 無需額外組件、操作直觀 | 辦公用戶、無開發(fā)經(jīng)驗者 |
無論你是希望實現(xiàn)圖表自動化導出,還是手動快速生成圖表圖像,這兩種方式都能滿足不同場景下的需求。
以上就是使用C#和VBA將Excel中的圖表保存為圖片的操作指南的詳細內(nèi)容,更多關于C# VBA將Excel圖表保存圖片的資料請關注腳本之家其它相關文章!
相關文章
C#中Predicate<T>與Func<T, bool>泛型委托的用法實例
這篇文章主要介紹了C#中Predicate<T>與Func<T, bool>泛型委托的用法,指出了其用法中的誤區(qū)及易錯點,有助于更好的理解泛型委托的用法,需要的朋友可以參考下2014-09-09
C#中Datetimepicker出現(xiàn)問題的解決方法
這篇文章主要給大家介紹了關于C#中Datetimepicker出現(xiàn)問題的解決方法,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧2018-11-11
WPF利用ValueConverter實現(xiàn)值轉(zhuǎn)換器
值轉(zhuǎn)換器在WPF開發(fā)中是非常常見的,值轉(zhuǎn)換器可以幫助我們很輕松地實現(xiàn),界面數(shù)據(jù)展示的問題。本文將通過WPF?ValueConverter實現(xiàn)簡單的值轉(zhuǎn)換器,希望對大家有所幫助2023-03-03
C#調(diào)用WebService的實現(xiàn)方法
這篇文章主要介紹了C#調(diào)用WebService的實現(xiàn)方法,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2025-06-06
C#發(fā)送和接收HTTP請求類HttpWebRequest的用法
這篇文章主要給大家介紹了關于C#發(fā)送和接收HTTP請求類HttpWebRequest用法的相關資料,C#中的HttpWebRequest是一個用于發(fā)送HTTP請求的類,它可以用于向Web服務器發(fā)送GET、POST、PUT、DELETE等請求,需要的朋友可以參考下2024-06-06

