使用C#和VBA將Excel中的圖表保存為圖片的操作指南
引言
在Excel報(bào)表自動(dòng)化生成和圖表內(nèi)容復(fù)用的場(chǎng)景中,將圖表導(dǎo)出為圖片是一個(gè)非常常見的需求,例如用于嵌入PPT報(bào)告、發(fā)送郵件展示、網(wǎng)頁(yè)可視化展示等。我們可以使用C#代碼實(shí)現(xiàn)批量圖表圖片導(dǎo)出,也可以借助VBA在Excel中一鍵導(dǎo)出圖表為圖片。
本文將介紹如何使用 C# 和 VBA 將 Excel 中的圖表保存為圖片,并提供完整的代碼示例和操作指導(dǎo)。
使用 C# 將 Excel 圖表保存為圖片
在 .NET 環(huán)境下,我們可以使用 Free Spire.XLS for .NET 輕松實(shí)現(xiàn)批量讀取 Excel 文件中的圖表并導(dǎo)出為 .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 文件;
- 遍歷工作簿中所有工作表;
- 遍歷每個(gè)工作表中的圖表(
Chart)對(duì)象; - 使用
SaveToImage()方法將圖表保存為Bitmap圖像; - 將圖像保存為
.jpg文件。
適用場(chǎng)景:C# 批量自動(dòng)導(dǎo)出圖表圖像,用于后臺(tái)程序、報(bào)表系統(tǒng)等。
使用 VBA 將 Excel 圖表保存為圖片
如果你想直接在 Excel 中導(dǎo)出當(dāng)前工作簿的圖表為圖片,可以使用 VBA 宏快速實(shí)現(xiàn),無(wú)需額外安裝插件或庫(kù)。
VBA 代碼示例
Sub SaveAllChartsAsImages()
Dim ws As Worksheet
Dim chartObj As ChartObject
Dim folderPath As String
Dim chartIndex As Integer
Dim fileName As String
' 設(shè)置保存路徑
folderPath = ThisWorkbook.Path & "\Charts"
If Dir(folderPath, vbDirectory) = "" Then MkDir folderPath
chartIndex = 1 ' 圖片命名編號(hào)
' 遍歷所有工作表
For Each ws In ThisWorkbook.Worksheets
' 遍歷工作表中的所有圖表對(duì)象
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 編輯器; - 插入一個(gè)新模塊(菜單欄:插入 > 模塊);
- 粘貼上述代碼;
- 按
F5運(yùn)行宏; - Excel 會(huì)在當(dāng)前文件所在目錄中創(chuàng)建
Charts文件夾,并將所有圖表以.jpg格式導(dǎo)出至該目錄。
適用場(chǎng)景:無(wú)需安裝環(huán)境,適合非程序員用戶在 Excel 中快速導(dǎo)出圖表圖片。
效果展示
導(dǎo)出的圖表圖像示例(使用 C#):

總結(jié)
| 方法 | 優(yōu)勢(shì) | 適合人群 |
|---|---|---|
| C# + Spire.XLS | 支持批量處理、嵌入系統(tǒng)、自動(dòng)化程度高 | 開發(fā)者、系統(tǒng)集成 |
| Excel VBA 宏 | 無(wú)需額外組件、操作直觀 | 辦公用戶、無(wú)開發(fā)經(jīng)驗(yàn)者 |
無(wú)論你是希望實(shí)現(xiàn)圖表自動(dòng)化導(dǎo)出,還是手動(dòng)快速生成圖表圖像,這兩種方式都能滿足不同場(chǎng)景下的需求。
以上就是使用C#和VBA將Excel中的圖表保存為圖片的操作指南的詳細(xì)內(nèi)容,更多關(guān)于C# VBA將Excel圖表保存圖片的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
C#用ComboBox控件實(shí)現(xiàn)省與市的聯(lián)動(dòng)效果的方法
這篇文章主要介紹了C#用ComboBox控件實(shí)現(xiàn)省與市的聯(lián)動(dòng)效果的方法,較為詳細(xì)的分析了ComboBox控件的使用原理與相關(guān)技巧,需要的朋友可以參考下2015-01-01
VB.NET中TextBox的智能感知應(yīng)用實(shí)例
這篇文章主要介紹了VB.NET中TextBox的智能感知應(yīng)用實(shí)例,非常實(shí)用的功能,需要的朋友可以參考下2014-08-08
c# WPF中通過雙擊編輯DataGrid中Cell的示例(附源碼)
這篇文章主要介紹了c# WPF中通過雙擊編輯DataGrid中Cell的示例(附源碼),幫助大家更好的理解和學(xué)習(xí)使用c#,感興趣的朋友可以了解下2021-03-03

