How to Excel 2007 Chart in VB.NET Picture Box
The follwoing program shows , how to get the Excel chart as an image in Picture Box .Before we crate a Chart , we have to fill data in Excel sheet. After enter data your Excel sheet is look like the following picture.
After fill the data , We have to create a chart object in VB.NET and configure the Chart object with necressary data like positions , size , data range , chart type etc.. and use the command for export chart as picture file , then load the picture from the path to picture box
The following picture shows the program screen after drawing the picture
VB.NET Source Code
Imports Excel = Microsoft.Office.Interop.Excel
Public Class Form1
Private Sub Button1_Click(ByVal sender As System.Object, _
ByVal e As System.EventArgs) Handles Button1.Click
Dim xlApp As Excel.Application
Dim xlWorkBook As Excel.Workbook
Dim xlWorkSheet As Excel.Worksheet
Dim misValue As Object = System.Reflection.Missing.Value
xlApp = New Excel.ApplicationClass
xlWorkBook = xlApp.Workbooks.Add(misValue)
xlWorkSheet = xlWorkBook.Sheets("sheet1")
'add data
xlWorkSheet.Cells(1, 1) = ""
xlWorkSheet.Cells(1, 2) = "Student1"
xlWorkSheet.Cells(1, 3) = "Student2"
xlWorkSheet.Cells(1, 4) = "Student3"
xlWorkSheet.Cells(2, 1) = "Term1"
xlWorkSheet.Cells(2, 2) = "80"
xlWorkSheet.Cells(2, 3) = "65"
xlWorkSheet.Cells(2, 4) = "45"
xlWorkSheet.Cells(3, 1) = "Term2"
xlWorkSheet.Cells(3, 2) = "78"
xlWorkSheet.Cells(3, 3) = "72"
xlWorkSheet.Cells(3, 4) = "60"
xlWorkSheet.Cells(4, 1) = "Term3"
xlWorkSheet.Cells(4, 2) = "82"
xlWorkSheet.Cells(4, 3) = "80"
xlWorkSheet.Cells(4, 4) = "65"
xlWorkSheet.Cells(5, 1) = "Term4"
xlWorkSheet.Cells(5, 2) = "75"
xlWorkSheet.Cells(5, 3) = "82"
xlWorkSheet.Cells(5, 4) = "68"
'create chart
Dim chartPage As Excel.Chart
Dim xlCharts As Excel.ChartObjects
Dim myChart As Excel.ChartObject
Dim chartRange As Excel.Range
xlCharts = xlWorkSheet.ChartObjects
myChart = xlCharts.Add(10, 80, 300, 250)
chartPage = myChart.Chart
chartRange = xlWorkSheet.Range("A1", "d5")
chartPage.SetSourceData(Source:=chartRange)
chartPage.ChartType = Excel.XlChartType.xlColumnClustered
'exporting chart as picture file
xlWorkSheet.ChartObjects(1).chart.Export(FileName:= _
"C:\excel_chart_export.bmp", FilterName:="BMP")
'load the pipcture into the picture box
PictureBox1.Image = New System.Drawing.Bitmap _
("C:\excel_chart_export.bmp")
xlWorkSheet.SaveAs("C:\vbexcel.xlsx")
xlWorkBook.Close()
xlApp.Quit()
releaseObject(xlApp)
releaseObject(xlWorkBook)
releaseObject(xlWorkSheet)
MsgBox("Chart File Exported !")
End Sub
Private Sub releaseObject(ByVal obj As Object)
Try
System.Runtime.InteropServices.Marshal.ReleaseComObject(obj)
obj = Nothing
Catch ex As Exception
obj = Nothing
Finally
GC.Collect()
End Try
End SubEnd Class
|
When you execute this program you will get the picture in Picture Box from Excel Chart .
|