I. Pengantar
Pada artikel sebelumnya saya membahas bagaimana membuat chart pada form
dengan menggunakan OWC 11. Dan jika pembaca semua sudah berhasil kini
saatnya untuk menerusi ker artikel ini. Bagaimana kita membuat chart pada excel
file dengan vb.net (mengeksport data dari table ke excel file dan membuat chart
Seluruh dokumen di IlmuKomputer.Com dapat digunakan, dimodifikasi dan
disebarkan secara bebas untuk tujuan bukan komersial (nonprofit), dengan syarat
tidak menghapus atau merubah atribut penulis dan pernyataan copyright yang
disertakan dalam setiap dokumen. Tidak diperbolehkan melakukan penulisan ulang,
kecuali mendapatkan ijin terlebih dahulu dari IlmuKomputer.Com.
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Step By Step Menjadi Programmer Handal Dengan VB.Net XVII
Junindar
dengan data tersebut. Artikel ini menggunakan Vb.Net 2003, dan juga sudah di
implementasikan di Vb 2005 express. Dan project dari artikel ini tersedia pada
http://junindar.blogspot.com So mari ikuti step-step dibawah ini.............
II. Desain Form
Untuk artikel ini kita bisa menggunakan project dari artikel sebelumnya, ataupun
bisa dengan membuat baru. Jika membuat baru tambahkan 1 buah datagrid dan 1
buah button pada form dan design seperti ini. Ubah properties button seperti
berikut.
Name : btnExport
Text :Export
Sebelumnya kita akan menambahkan Ms Excel interop pada project kita dengan
cara sebagai berikut. Klik kanan project dan pilih Add Reference, maka jendela
Add Refence akan tampil seperti dibawah.
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Step By Step Menjadi Programmer Handal Dengan VB.Net XVII
Junindar
Lalu klik tab COM dan pada component name cari dan select MS Excel 11.0 Object
Library. Dan klik OK.
Sekarang saat nya kita masuk ke coding.
III. Coding
Buka jendela code pada form dan ketik sintaks dibawah ini. Pada baris awal jendela
code.
Dan untuk deklarasi ketik sintaks dibawah
Sintaks dibawah ini untuk menampilkan data pada data grid.
Imports System.Data
Imports System.Data.OleDb
Imports System.io
Imports Microsoft.Office.Interop
#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
Dim MyConnection As New AccessData.DatabaseConnection
Dim AlphaNum As Integer
Dim Filename, Alphabets As String
Dim chkexcel As Boolean
Dim oexcel As Excel.Application
Dim obook As Excel.Workbook
Dim osheet As Excel.Worksheet
#End Region
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
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Step By Step Menjadi Programmer Handal Dengan VB.Net XVII
Junindar
Sintaks diatas berfungsi untuk mengkonvert number ke string (kolom pada excel)
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
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Step By Step Menjadi Programmer Handal Dengan VB.Net XVII
Junindar
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 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
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Step By Step Menjadi Programmer Handal Dengan VB.Net XVII
Junindar
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
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Step By Step Menjadi Programmer Handal Dengan VB.Net XVII
Junindar
Double click form1 dan ketikkan sintaks dibawah.
Dan double click button export dan ketik sintaks dibawah ini
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
Try
View_Data()
Catch ex As Exception
MsgBox(ex.Message)
Finally
MyConnection.close()
End Try
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Step By Step Menjadi Programmer Handal Dengan VB.Net XVII
Junindar
Setelah selesai dengan coding diatas, jalankan program. Maka tampilan program
seperti pada gambar diatas. Untuk mengexport ke excel file klik button export.
Maka file excel akan tersimpan di mana tempat exe file berada, dengan nama
abc.xls.
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
Kuliah Berseri IlmuKomputer.Com
Copyright © 2003 IlmuKomputer.Com
Step By Step Menjadi Programmer Handal Dengan VB.Net XVII
Junindar
Penutup
Mudah-mudahan artikel ini membuat kita semua menjadi bertambah pengetahuanya.
Referensi
1. www.msdn.microsoft.com
2. www.planetsourcecode.com
3. www.codeproject.com
4. www.aspnet.com
Masih banyak lagi referensi yang ada di Intenet. Anda tinggal cari di www.Google.com.
Dengan kata kunci “tutorial VB.Net”
Tidak ada komentar:
Posting Komentar