Delphi 7 : Export DataGrid ke MS. Excell

Microsoft Excel merupakan salah satu aplikasi spreadsheet (lembar kerja) dalam bentuk tabel. Jelas dalam penyajian yang berupa tabel membuat pengguna lebih mudah untuk mengolah data lebih lanjut, bahkan membuat laporan yang begitu banyak menjadi rapi. Nah,,selain sebagai pengolah data aplikasi spreadsheet seperti Microsoft Excel ini juga dipilih sebagai alternatif back up terhadap data yang tersimpan di database, selain lebih manusiawi dipandang file pun secara umum bisa dibawa kemana – kemana dan bisa dibuka dimana saja. Selain itu juga memudahkan untuk mengolah data lebih lanjut atau sekedar mempercantik tampilan atau merapikan susunan. Tentunya hal ini sangat membantu untuk membuat pelaporan. Meskipun biasanya sebuah sistem itu sudah dilengkapi dengan pilihan laporan yang bisa langsung print, kadang format yang disediakan mungkin belum tentu sesuai. Maka dengan menambahkan fitur export ke dalam bentuk spread sheet bisa menjadi nilai lebih… :D

Ok,,langsung ke praktek aj deh…

Jadi inti dari tulisan saya kali ini adalah mengkonversi data yang tertampil dari datagrid menjadi format microsoft excel, jadi tidak peduli kita mau pakai database apaan. Selama data itu sudah tertampil dalam datagrid maka kita bisa mengkonversinya. Untuk aplikasi ini saya menggunakan database microsoft acces.

Komponen :

  • Koneksi : ADOConnection, ADOTable, DataSource
  • untuk cara koneksi delphi ke database microsof acces bisa lihat tulisan saya sebelumnya
  • Data : DBGrid
  • Button

 

Untuk bisa menggunakan fungsi Excel maka kita perlu menambah Uses : ComObj

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, StdCtrls, DB, Grids, DBGrids, ADODB, ComObj;

Beberapa variabel yang kita gunakan dari Unit ComObj


var
XlApp; XlBook, XlSheet: Variant;

 

dan ini code untuk Prosedure Konversinya


begin
XlApp := CreateOleObject('Excel.Application');
XlBook := XlApp.WorkBooks.Add;
XlSheet := XlBook.worksheets.add;
//memberikan judul pada baris pertama
for i:=0 to DBGrid1.FieldCount-1 do
begin
XlSheet.cells[1,i+1].value:=DBGrid1.Columns[i].Title.Caption;
end;
//XlSheet.cells[x,y] ==> x = baris dan y = kolom
ADOTable1.First;
x:=1; //inisialisasi untuk menampilkan no urut
while not ADOTable1.Eof do
begin
XlSheet.cells[x+1,1].value:=x;
for i:=1 to DBGrid1.FieldCount-1 do
begin
XlSheet.cells[x+1,i+1].value:=DBGrid1.Fields[i].Tetx;
end;
ADOTable1.Next;
inc(x);
end;
XlApp.visible:=true; //menampilkan dalam MS. Excel\</p>
end;

Comments

  1. By Andik

    Reply

    • By Dian S. Prastowo

      Reply

  2. By rizki

    Reply

    • By Dian S. Prastowo

      Reply

  3. By fiyya

    Reply

  4. By cogier

    Reply

  5. By Fendi

    Reply

  6. By Fatma

    Reply

  7. By arnita

    Reply

  8. By Dimas Anom Priyayi

    Reply

  9. By Ren

    Reply

Leave a Reply to cogier Cancel reply

Your email address will not be published. Required fields are marked *

You may use these HTML tags and attributes: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>