Export chart ( grapik ) di vb.net ke excel part2



Pada general declaration kita tambahkan :

Imports Microsoft.Office.Interop

Sub Dbclose()
'mengecek dan tutup excel application
If chkexcel = True Then
osheet = Nothing
oexcel.Application.DisplayAlerts = False
obook.Close()
oexcel.Application.DisplayAlerts = True
obook = Nothing
oexcel.Quit()
oexcel = Nothing
End If
' End
End Sub


Sub Alphabet()
Select Case AlphaNum
Case 1
Alphabets = "A"
Case 2
Alphabets = "B"
Case 3
Alphabets = "C"
Case 4
Alphabets = "D"
Case 5
Alphabets = "E"
Case 6
Alphabets = "F"
Case 7
Alphabets = "G"
Case 8
Alphabets = "H"
Case 9
Alphabets = "I"
Case 10
Alphabets = "J"
Case 11
Alphabets = "K"
Case 12
Alphabets = "L"
Case 13
Alphabets = "M"
Case 14
Alphabets = "N"
Case 15
Alphabets = "O"
Case 16
Alphabets = "P"
Case 17
Alphabets = "Q"
Case 18
Alphabets = "R"
Case 19
Alphabets = "S"
Case 20
Alphabets = "T"
Case 21
Alphabets = "U"
'bisa disambung sendiri
End Select
End Sub

source : http://ilmukomputer.org

Export chart ( grapik ) di vb.net ke excel part1



Ini project menggabung dengan membuat chart di vb.net :

sedangkan hal yang ditambahkan :

Button export diklik :
Button clik
Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Try
'Nama File dan path. file akan disimpan di mana file exe(brada)
Filename = Application.StartupPath & "\abc.xls"
'cek apakah file exist jika iya kemudian delete untuk membuat file baru.
If File.Exists(Filename) Then
File.Delete(Filename)
End If
If Not File.Exists(Filename) Then
chkexcel = False
'Membuat excel aplikasi yang baru
oexcel = CreateObject("Excel.Application")
'tambahkan worbook yang baru
obook = oexcel.Workbooks.Add
'mensetting application alert
oexcel.Application.DisplayAlerts = True
'mengecek total sheet pada workbook
Dim S As Integer = oexcel.Application.Sheets.Count()
'delete seluruh sheet kecuali sheet pertama
If S > 1 Then
oexcel.Application.DisplayAlerts = False
Dim J As Integer = S
Do While J > 1
oexcel.Application.Sheets(J).delete()
J = oexcel.Application.Sheets.Count()
Loop
End If
'untuk mengecek session dari excel application
chkexcel = True
oexcel.Visible = True
'ini procedure untuk mengisi data pada excel File()
Generate_Sheet()
'simapn excel file
obook.SaveAs(Filename)
'menutup excel object dan session
osheet = Nothing
oexcel.Application.DisplayAlerts = False
obook.Close()
oexcel.Application.DisplayAlerts = True
obook = Nothing
oexcel.Quit()
oexcel = Nothing
chkexcel = False
MsgBox("Export Finished")
End If
Catch ex As Exception
MsgBox(ex.Message)
Finally
MyConnection.close()
Dbclose()
End Try
End Sub
---------------------------------------------
Generate sheet

Sub Generate_Sheet()
View_Data()
osheet = oexcel.Worksheets(1)
'Menganti nama Sheet
osheet.Name = "Excel Charts"
osheet.Range("A1:AZ400").Interior.ColorIndex = 2
osheet.Range("A1").Font.Size = 12
osheet.Range("A1").Font.Bold = True
osheet.Range("A1:I1").Merge()
osheet.Range("A1").Value = "Excel Automation With Charts"
osheet.Range("A1").EntireColumn.AutoFit()
'columns heading
For i As Integer = 0 To objDataTable.Columns.Count - 1
AlphaNum = i + 1
Alphabet()
osheet.Range(Alphabets & "3").Value = objDataTable.Columns.Item(i).ToString()
osheet.Range(Alphabets & "3").BorderAround(8)
osheet.Range(Alphabets & "3").EntireColumn.AutoFit()
Next
'format headings
osheet.Range("A3:" & Alphabets & "3").Font.Color = RGB(255, 255, 255)
osheet.Range("A3:" & Alphabets & "3").Interior.ColorIndex = 5
osheet.Range("A3:" & Alphabets & "3").Font.Bold = True
osheet.Range("A3:" & Alphabets & "3").Font.Size = 10
'memasukkan data dari DB
Dim R As Integer = 3
Dim x As Integer
Dim a, b, c As String
For Each row As DataRow In objDataTable.Rows
R = R + 1
For i As Integer = 0 To objDataTable.Columns.Count - 1
AlphaNum = i + 1
Alphabet()
osheet.Range(Alphabets & R).Value = row(i).ToString
osheet.Range(Alphabets & R).BorderAround(8)
Next i
Next
'Membuat object chart
Dim oChart As Excel.Chart
Dim MyCharts As Excel.ChartObjects
Dim MyCharts1 As Excel.ChartObject
MyCharts = osheet.ChartObjects
'mensetting lokasi chart
MyCharts1 = MyCharts.Add(150, 100, 400, 250)
oChart = MyCharts1.Chart
'membuat chart pada default location
oChart.Location(Excel.XlChartLocation.xlLocationAsObject, osheet.Name)
With oChart
'mengeset range untuk chart
Dim chartRange As Excel.Range
chartRange = osheet.Range("A3", Alphabets & R)
.SetSourceData(chartRange)
'fungsi ini untuk mengeset bentuk dari plot, apakh kolom atau baris
.PlotBy = Excel.XlRowCol.xlRows
'mensetting data label
.ApplyDataLabels(Excel.XlDataLabelsType.xlDataLabelsShowNone)
'mensetting apakah legend tampil atau tidak
.HasLegend = True
'mensetting lokasi legend
.Legend.Position = Excel.XlLegendPosition.xlLegendPositionRight
'Pilih tipe chart
.ChartType = Excel.XlChartType.xlColumnClustered
'chart title
.HasTitle = True
.ChartTitle.Text = "Bar Chart"
Dim xlAxisCategory, xlAxisValue As Excel.Axes
xlAxisCategory = CType(oChart.Axes(, Excel.XlAxisGroup.xlPrimary), Excel.Axes)
xlAxisCategory.Item(Excel.XlAxisType.xlCategory).HasTitle = True
xlAxisCategory.Item(Excel.XlAxisType.xlCategory).AxisTitle.Characters.Text = "Month"
xlAxisValue = CType(oChart.Axes(, Excel.XlAxisGroup.xlPrimary), Excel.Axes)
xlAxisValue.Item(Excel.XlAxisType.xlValue).HasTitle = True
xlAxisValue.Item(Excel.XlAxisType.xlValue).AxisTitle.Characters.Text = "Category"
End With
End Sub

Membuat chart ( grapic) di vb.net part3



Coding untuk pertama kali form diload :

Form load

Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Try
cbchart.SelectedIndex = 0
Catch ex As Exception
MsgBox(ex.Message)
Finally
MyConnection.close()
End Try

End Sub

Combobox

Private Sub cbchart_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cbchart.SelectedIndexChanged
Try
RefreshChart()
Catch ex As Exception
MsgBox(ex.Message)
Finally
MyConnection.close()
End Try
End Sub

source : http://ilmukomputer.org

Membuat chart ( grapic) di vb.net part2

Menampilkan chart

Sub RefreshChart()
View_Data()
Dim a As String
Dim categories(11)
For i As Integer = 0 To 11
categories(i) = objDataTable.Columns(i + 1).Tostring
a = objDataTable.Columns(i + 1).tostring
Next
Dim values(11)
Dim chConstants

'Menghapus isi dari chart, seluruh chart yang lama dan exist menjadi empty
'buat 1 chart yang baru

AxChartSpace1.Clear()
AxChartSpace1.Charts.Add()
chConstants = AxChartSpace1.Constants

'tambahkan series, secara dinamis

For i As Integer = 0 To objDataTable.Rows.Count - 1
AxChartSpace1.Charts(0).SeriesCollection.Add()
Next
Dim MaxTotal As Integer = 0

'membuat warna dasar chart menjadi putih

AxChartSpace1.Charts(0).PlotArea.Interior.Color = "White"
For j As Integer = 0 To objDataTable.Rows.Count - 1

'mengeset categories series

AxChartSpace1.Charts(0).SeriesCollection(j).SetData(chConstants.chDimCategories, chConstants.chDataLiteral, categories)
For i As Integer = 1 To objDataTable.Columns.Count - 1
values(i - 1) = Val(objDataTable.Rows(j).Item(i).tostring)
If values(i - 1) > MaxTotal Then
MaxTotal = values(i - 1)
End If
Next

'mengeset series value

AxChartSpace1.Charts(0).SeriesCollection(j).SetData(chConstants.chDimValues, chConstants.chDataLiteral, values)

'membuat caption

AxChartSpace1.Charts(0).SeriesCollection(j).Caption = objDataTable.Rows(j).Item(0).ToString()
Next
For i As Integer = 0 To objDataTable.Rows.Count - 1
Dim colors As String
Select Case i
Case 0
colors = "Red"
Case 1
colors = "DarkOrange"
Case 2
colors = "Cyan"
Case 3
colors = "Yellow"
Case 4
colors = "Red"
Case 5
colors = "Black"
Case 6
colors = "Navy"
Case 7
colors = "SkyBlue"
Case 8
colors = "SlateGray"

'selanjutnya tambah sendiri ya

End Select
AxChartSpace1.Charts(0).SeriesCollection(i).Interior.Color = colors
Next
If cbchart.Text = "3D" Then
AxChartSpace1.Charts(0).Type = owc11.ChartChartTypeEnum.chChartTypeColumn3D
End If

'Mengaktifkan Legend pada chart

AxChartSpace1.Charts(0).HasLegend = True
AxChartSpace1.Charts(0).Axes(1).Scaling.Maximum = MaxTotal
AxChartSpace1.Charts(0).Axes(1).MajorUnit = MaxTotal / 10
AxChartSpace1.Charts(0).Axes(1).Scaling.Minimum = 0
AxChartSpace1.Charts(0).Axes(0).HasTitle = True
AxChartSpace1.Charts(0).Axes(0).Title.Caption = "Month"
AxChartSpace1.Charts(0).Axes(0).Title.Font.Name = "Arial"
AxChartSpace1.Charts(0).Axes(0).Title.Font.Size = 9
AxChartSpace1.Charts(0).Axes(1).HasTitle = True
AxChartSpace1.Charts(0).Axes(1).Title.Caption = "Category"
AxChartSpace1.Charts(0).Axes(1).Title.Font.Name = "Arial"
AxChartSpace1.Charts(0).Axes(1).Title.Font.Size = 9
End Sub

Source : http://ilmukomputer.org

Membuat chart ( grapic) di vb.net part1



Import packet yang diperlukan :

Ketikkan di code ini General declaration
Imports System
Imports System.IO
Imports System.Data
Imports System.Data.OleDb
Imports owc11 = Microsoft.Office.Interop.Owc11
Imports Microsoft.Office.Interop

Membuat object dan string koneksi :

Namespace AccesData
Imports System.Data
Imports System.Data.OleDb

Public Class DatabaseConnection

Dim objConnection As New OleDbConnection("provider=Microsoft.Jet.OLEDB.4.0 ;data source=D:\Perpustakaan\coding\tutorial\jun\grapic\acces\bin\Graph.mdb")

Public Function open() As OleDbConnection
objConnection.Open()
Return objConnection
End Function

Public Function close() As OleDbConnection
objConnection.Close()
Return objConnection
End Function
End Class
End Namespace

Form declaration
public Class Form1
Inherits System.Windows.Forms.Form
Dim MyConnection As New AccesData.DatabaseConnection

Delaration public
#Region "Declaration"
Dim objConnection As OleDbConnection
Dim objCommand As OleDbCommand
Dim objDataAdapter As OleDbDataAdapter
Dim strSQL As String
Dim objDataSet As New DataSet
Dim objDataTable As New DataTable
#End Region

Tampil datagrid
Sub View_Data()
objDataTable.Clear()
strSQL = "select * from [Cat]"
objCommand = New OleDbCommand
objCommand.Connection = MyConnection.open
objCommand.CommandType = CommandType.Text
objCommand.CommandText = strSQL
objDataAdapter = New OleDbDataAdapter(objCommand)
objDataAdapter.Fill(objDataSet, "Mdt_Cat")
MyConnection.close()
objDataTable = objDataSet.Tables("Mdt_Cat")
DataGrid1.DataSource = objDataTable
End Sub

Source : http://ilmukomputer.org