Selasa, April 01, 2008

Mengekspor data dari file Excel ke MySQL

Disini saya akan memberi contoh cara mengekspor data dari file excel ke database MySQL. Sebagai contoh kita akan mengekspor file excel yang isinya kdmk dan nilai, yang nantinya akan di ekspor ke MySQL pada tabel tb_krs yang fieldnya juga sama yaitu kdmk dan nilai. Ceritanya, kita akan memasukan nilai ke database MySQL yaitu ke tb_krs yang tadinya nilainya belum ada, kita update dengan mengekspor file nilai dari excel, agar kita tidak perlu menginputkan nilai satu per satu ke tb_krs.

Ikuti langkah-langkahnya sebagai berikut.

Buat satu form utama seperti gambar di bawah ini.

form_utama.jpg

Buat satu data modul dan tambahkan komponen-komponen sebagaimana gambar berikut.

dm.jpg

Keterangan :

Koneksi ADO untuk menghubungkan dengan MS. Excel dan MyDAC untuk menghubungkan dengan MySQL

Tambahkan kode program berikut ini pada event OnClick tombol Open File.

procedure TForm1.btnOpenFileClick(Sender:TObject);
begin
with OpenDialog1 do
begin
Options := [ofFileMustExist]; Filter :=’Excel files|*.xls’;
FilterIndex := 1; InitialDir:=’E:\Euis\’;
Execute;
end;
openfile(OpenDialog1.FileName);
if MessageDlg(’Proses Update ?’,mtConfirmation,[mbYes,mbNo],1) = mrYes then
MoveTheXLS;
end;

Tambahkan konstanta EXCEL_CONNECTION_STRING, procedure MoveTheXLS dan OpenFile sebagai berikut.

Const
EXCEL_CONNECTION_STRING = ‘Provider=Microsoft.Jet.OLEDB.4.0′ + ‘;Extended Properties
= excel 8.0 ‘ + ‘;Persist Security Info = False’;

procedure TForm1.MoveTheXLS;
begin
with DM do
begin
ADODataSet1.First;
While Not(ADODataSet1.Eof) do
begin
with mySQLQuery1 do
begin
Close;
SQL.Clear;
SQL.Text:=’update db_akd.tb_krs set nilai=:nilai where kdmk=:kdmk’;
paramByName(’kdmk’).AsString:=GridXls.Fields[0].AsString;
paramByName(’nilai’).AsString:=GridXls.Fields[1].AsString;
ExecSQL;
end;
ADODataSet1.Next;
end;
end;
end;

procedure TForm1.OpenFile(filename:TFileName);
var sl : TStringList;
begin
dm.ADOConnection1.Close;
dm.ADOConnection1.ConnectionString := EXCEL_CONNECTION_STRING + ‘;data source=’
+ filename; sl := nil;
sl := TStringList.Create;
try
dm.ADOConnection1.GetTableNames( sl );
If sl.Count > 0 Then
begin
dm.ADODataSet1.CommandText := ‘Select * from [’ + sl.Strings[0] + ‘] ‘ ;
dm.ADODataSet1.open;
end;
finally
sl.free;
end;
end;

Jika codingnya sudah selesai, maka tekan F9 untuk run program. Hasilnya adalah sebagai berikut.

form_run.jpg

Tekan tombol Open File untuk mencari file excel yang akan di export datanya.

Setelah file excel di open, maka akan tampil sebagai berikut.

form_hasil.jpg

Klik tombol Yes.

Program ini berjalan dengan baik berkat bantuan teman saya yang bernama Mas Dedy Setyawan. Thank you for helping me.

4 komentar:

Anonim mengatakan...

Kalau data excel-nya beraturan, cara diatas memang bisa. Tapi misalkan ngga beraturan seperti data history faktur penjualan 1 bulan terakhir, gmn dong cara importnya :(

Anonim mengatakan...

Mbak.. bagaimana kalau sebaliknya dari MySQL ke Excel?


Thnks

Euis Marlina mengatakan...

Bisa, tapi via aplikasi delphi, menggunakan komponen exportexcel

neo mengatakan...

wah... wah... wah... wah...
pinter banget sih (mbak atau ibu nih...) jdi org... aku jdi ngerasa kecil nih...

kebetulan aku jga lgi cari tutor untk edit data excel melalui delphi dan sebaliknya.

bleh minta tlg di postingkan juga alamat link untuk source code nya gk...
biar bsa sma2 belajarnya gtu....

pls ya... bantuannya....

Ayo Peka! Stop Pembalut Sekali Pakai

  “Saya paling tak suka kalau pegiat lingkungan berteriak betapa sulitnya mengelola sampah pembalut tapi dia sendiri tetap memakainya!“ *** ...