Selasa, 24 Maret 2015

mengolah data excel dengan vb.net



Excel merupakan salah satu jenis peranti lunak pengolah database. Banyak orang menggunakan excel sebagai media untuk pengolahan data yang mereka butuhkan. Dalam bab ini akan dijelaskan tentang bagaimana cara mengolah data excel dengan menggunakan VB.Net termasuk di dalamnya tentang cara export dan import.

Membuat Project Baru

Tahapan pertama dalam pembuatan aplikasi pengolahan data excel ini adalah membuat project baru dengan langkah sebagai berikut:
1.         Buka visual studio 2008
2.         Klik create project
3.         Tulis nama project “Mengolah Data Excel”
4.         OK

Setelah membuat project baru dan menyimpannya di posisi tertentu, maka akan terbentuk folder project secara otomatis yang di dalamnya terdapat folder ... >> BIN>> DEBUG. Folder inilah yang akan dijadikan tempat menyimpan data excel. 

Kondisi ini sekarang menjadi sebuah pilihan, anda boleh saja membuat data excel dan disimpan di folder yang anda inginkan karena nantinya data excel dapat dicari dengan menggunakan openfiledialog.

Membuat Data Excel

Langkah berikutnya adalah membuat data excel dengan struktur seperti gambar di bawah ini.
Data Barang

Membuat Module Koneksi Ke Excel

Coding module koneksi ke data excel agak sedikit berbeda dengan database access, mysql atau sql server. Untuk membuat module koneksi ini klik menu project >> add module.
Membuat Module Koneksi
Coding :
Imports System.Data.OleDb

Module Module1

    Public CONN AsOleDbConnection
    Public CMD AsOleDbCommand
    Public DS AsNew DataSet
    Public DA AsOleDbDataAdapter
    Public RD AsOleDbDataReader
    Public DT AsDataTable

    SubKoneksi()
        'string koneksi ke data excel
        CONN = NewOleDbConnection("provider=Microsoft.ace.OLEDB.12.0;data source=book1.xlsx;Extended Properties=Excel 8.0;")
        CONN.Open()
    End Sub
End Module

Form Pengolahan Data Excel
Logika dan proses program dalam form barang mirip seperti yang telah dibahas pada bab sebelumnya.
Form Barang


Coding :
Imports System.Data.OleDb


Public ClassForm1

    Sub Kosongkan()
        TextBox1.Clear()
        TextBox2.Clear()
        TextBox1.Focus()
    End Sub

    Sub TampilGrid()
        DA = NewOleDbDataAdapter("select * from [sheet1$]", CONN)
        DS = NewDataSet
        DA.Fill(DS)
        DGV.DataSource = DS.Tables(0)
        DGV.ReadOnly = True
    End Sub

    Private SubForm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) HandlesMyBase.Load
        CallKoneksi()
        CallTampilGrid()
        Call Kosongkan()
    End Sub

    Private SubTextBox1_KeyPress(ByVal sender As Object, ByVal e AsSystem.Windows.Forms.KeyPressEventArgs) HandlesTextBox1.KeyPress
        TextBox1.MaxLength = 5
        Ife.KeyChar = Chr(13) Then
            CallKoneksi()
            CMD = NewOleDbCommand("Select * from [sheet1$] where val(Kode)='" & TextBox1.Text & "'", CONN)
            RD = CMD.ExecuteReader
            RD.Read()
            If Not RD.HasRows Then
                TextBox2.Text = ""
                TextBox2.Focus()
            Else
                TextBox2.Text = RD.Item("NAMA")
                TextBox2.Focus()
            EndIf
        End If
    End Sub

    Private SubTextBox2_KeyPress(ByVal sender As Object, ByVal e AsSystem.Windows.Forms.KeyPressEventArgs) HandlesTextBox2.KeyPress
        TextBox2.MaxLength = 30
        Ife.KeyChar = Chr(13) Then Button1.Focus()
    End Sub



    Private SubButton1_Click(ByVal sender As System.Object, ByVale As System.EventArgs) HandlesButton1.Click
        IfTextBox1.Text = "" Or TextBox2.Text = ""Then
            MsgBox("Data belum lengkap")
            ExitSub
        Else
            CallKoneksi()
            CMD = NewOleDbCommand("Select * from [sheet1$] where val(Kode)='" & TextBox1.Text & "'", CONN)
            RD = CMD.ExecuteReader
            RD.Read()
            If Not RD.HasRows Then
                Dimsimpan As String= "insert into [sheet1$] values ('"& TextBox1.Text & "','"& TextBox2.Text & "')"
                CMD = NewOleDbCommand(simpan, CONN)
                CMD.ExecuteNonQuery()
            Else
                Dimedit As String= "update [sheet1$] set NAMA='"& TextBox2.Text & "' where val(Kode)='" & TextBox1.Text & "'"
                CMD = NewOleDbCommand(edit, CONN)
                CMD.ExecuteNonQuery()
            EndIf

            CallTampilGrid()
            CallKosongkan()
        End If
    End Sub

    Private SubButton2_Click(ByVal sender As System.Object, ByVale As System.EventArgs) HandlesButton2.Click
        IfTextBox1.Text = "" Then
            MsgBox("val(Kode) Barang masih kosong, silakan diisi dulu")
            TextBox1.Focus()
            ExitSub
        Else
            IfMessageBox.Show("Yakin akan dihapus..?", "", MessageBoxButtons.YesNo) = Windows.Forms.DialogResult.Yes Then
                Dimhapus As String= "delete * from [sheet1$] where val(Kode)='" & TextBox1.Text & "'"
                CMD = NewOleDbCommand(hapus, CONN)
                CMD.ExecuteNonQuery()
                CallTampilGrid()
                CallKosongkan()
            Else
                CallKosongkan()
            EndIf
        End If
    End Sub

    Private SubButton3_Click(ByVal sender As System.Object, ByVale As System.EventArgs) HandlesButton3.Click
        CallKosongkan()
    End Sub

    Private SubButton4_Click(ByVal sender As System.Object, ByVale As System.EventArgs) HandlesButton4.Click
        Me.Close()
    End Sub

    Private SubTextBox6_TextChanged(ByVal sender As System.Object, ByVale As System.EventArgs) HandlesTextBox6.TextChanged
        CMD = NewOleDbCommand("select * from [sheet1$] where NAMA like '%" & TextBox6.Text & "%'", CONN)
        RD = CMD.ExecuteReader
        RD.Read()
        IfRD.HasRows Then
            DA = NewOleDbDataAdapter("select * from [sheet1$] where NAMA like '%" & TextBox6.Text & "%'", CONN)
            DS = NewDataSet
            DA.Fill(DS, "ketemu")
            DGV.DataSource = DS.Tables("ketemu")
            DGV.ReadOnly = True
        Else
            MsgBox("data tidak ditemukan")
        End If
    End Sub

End Class

Coba anda perhatikan, begitu mudahnya mengolah data excel, perbedaannya hanya pada string koneksi dan penyebutan nama tabel diganti dengan nama sheet.

Tidak ada komentar:

Posting Komentar