2011年1月31日 星期一

VB.NET 產生 Excel 圖表另存圖片

記錄一下怎麼產生 Excel 圖表並另存成圖片

1.開啟一個空白 Excel, 將要填的資料格式都準備好, 並插入想要的圖表在裡面
2.將 Excel 儲存為 Template.xls 放入專案 \bin\debug\ 下
3.撰寫 VB.NET 程式段填寫資料 (圖表會隨資料異動而改變)

'開啟 Template Excel
Dim strTemplatePath As String = Directory.GetCurrentDirectory & "\Template.xls"
Dim xlsApp As New Application()
Dim xlsWorkBook As Workbook = xlsApp.Workbooks.Open(strTemplatePath)
Dim xlsWorkSheet As Worksheet = CType(xlsWorkBook.Worksheets("Sheet1"), Worksheet)

'填入 Excel 資料
..................................

'另存為 Html (產生圖表圖片)
Dim strHtmlName As String = Directory.GetCurrentDirectory & "\Chart.htm"
xlsWorkBook.SaveAs(strHtmlName, XlFileFormat.xlHtml)

'關閉 Excel
xlsWorkBook.Saved = True
xlsApp.Quit()
xlsApp = Nothing
GC.Collect()
GC.WaitForPendingFinalizers()

這樣 \bin\debug\ 下就會多了個 Chart.htm 檔案及 Chart.files 資料夾
Chart.files 資料夾下會有個 image001.gif 圖片
這就是我們要的圖片檔了
(p.s 如果 Template.xls 裡有多張圖表, 會依序命名為 image001, image002...)

沒有留言:

張貼留言