Report
HTML & Excel
Untuk membuat report menggunakan
format HTML/MHT dengan Microsoft Excel ikuti langkah-langkah di bawah ini :
1. Buka Microsoft Excel. Buat
dokumen dengan format seperti tampilan di bawah ini. Kemudian klik File-Save
dan simpan dengan nama template.xls.
2. Kemudian
klik File-Save As untuk menyimpan dokumen tersebut dalam format Single Web Page
(*mht) dengan nama template.mht.
3. Tutup Microsoft Excel. Kemudian
buka file template.mht dengan Notepad sehingga tampak isi file dengan format
HTML seperti di bawah ini :
4. Kemudian carilah bagian file
yang mempunyai tag <tr> dan mempunyai isi [name], [address], dan [phone]
sampai bagian akhir tag penutup </tr>
5. Cut bagian tersebut, kemudian
buka Notepad lagi, Paste bagian file tersebut pada Notepad yang baru sehingga
tampak seperti tampilan di bawah ini. Klik Save dan simpan dengan nama
templatecontent.mht. Tutup Notepad tersebut.
9. Pada Notepad yang berisi file
template.mht, di bagian yang sudah di Cut tuliskan [content]. Kemudian klik File-Save dan tutup
Notepad.
10. Buka Microsoft Visual Studio
2008, pilih File-New Project, pilih Project Types : Visual Basic dan Templates
: Windows Application. Klik OK.
11. Pada Form1 dari Toolbox tambahkan
control DataGridView dan Button.
12. Tampilkan
kode program Form1.vb milik Form1. Pada bagian imports paling atas tambahkan
reference-reference yang akan dipakai, yaitu : System.Data.Odbc dan System.IO.
Imports System.Data.Odbc
Imports
System.IO
13. Kemudian di bawahnya pada
deklarasi variabel dan objek global milik Class Form1 tambahkan kode program
berikut ini :
Public
Class Form1
Public cn As OdbcConnection
Public ds As DataSet
Public tb As DataTable
Public WithEvents bs As BindingSource
Declare Function ShellExecuteA Lib
"shell32.dll" ( _
ByVal hWnd As IntPtr, _
ByVal lpOperation As String, _
ByVal lpFile As String, _
ByVal lpParameters As String, _
ByVal lpDirectory As String, _
ByVal nShowCmd As Integer) As IntPtr
14. Klik dua kali pada Form1
kemudian pada Private Sub Form1_Load tambahkan kode program berikut :
Private Sub Form1_Load(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
Dim i As Integer
cn = New
OdbcConnection("Driver={Microsoft Access Driver (*.mdb)};DBQ=" &
Path.GetDirectoryName(Application.ExecutablePath) & "\data.mdb")
cn.Open()
Dim cm As New OdbcCommand("SELECT
name, address, phone FROM contacts", cn)
Dim rd As OdbcDataReader
rd = cm.ExecuteReader()
ds = New DataSet
tb = New DataTable
tb.TableName = "contacts"
ds.Tables.Add(tb)
ds.Load(rd, LoadOption.Upsert, tb)
For i = 0 To (tb.Columns.Count - 1)
If (tb.Columns(i).DataType.ToString
= "System.String") Then tb.Columns(i).MaxLength = 255
Next
rd.Close()
cn.Close()
bs = New BindingSource()
bs.DataSource = ds
bs.DataMember = "contacts"
DataGridView1.DataSource = bs
End Sub
15. Untuk
menjalankan program klik menu Debug-Start Debugging (F5). Program akan berjalan seperti
tampilan di bawah ini:
16. Hentikan Pogram. Kemudian klik
dua kali pada Button1 pada Private Sub Button1_Click tambahkan kode program
berikut :
Private Sub Button1_Click(ByVal sender As
System.Object, ByVal e As System.EventArgs) Handles Button1.Click
Dim i As Integer
Dim rpt As String
Dim cPart, tContent As String
rpt =
File.ReadAllText(Path.GetDirectoryName(Application.ExecutablePath) &
"\template.mht")
tContent = ""
For i = 0 To (bs.Count - 1)
cPart =
File.ReadAllText(Path.GetDirectoryName(Application.ExecutablePath) &
"\templatecontent.mht")
cPart = Replace(cPart,
"[name]", bs.Item(i)("name").ToString)
cPart = Replace(cPart,
"[address]", bs.Item(i)("address").ToString)
cPart = Replace(cPart,
"[phone]", bs.Item(i)("phone").ToString)
tContent = tContent & vbCrLf
& cPart
Next
rpt = Replace(rpt,
"[content]", tContent)
File.WriteAllText(Path.GetDirectoryName(Application.ExecutablePath)
& "\report.xls", rpt)
ShellExecuteA(Me.Handle,
"open", Path.GetDirectoryName(Application.ExecutablePath) &
"\report.xls", "", "", 1)
End Sub
End
Class
17. Untuk
menjalankan program klik menu Debug-Start Debugging (F5). Kemudian coba klik
Button1, maka akan muncul tampilan report dalam Microsoft Excel.