
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
Export chart ( grapik ) di vb.net ke excel part1
Langganan:
Posting Komentar (Atom)
1 komentar:
Pak'e, croppingannya kurang mulus :D... hehehe yang dikomen kok bukan codingannya...
but eniwei, thx dengan source codenya ya pak, bisa saya coba nanti
Posting Komentar