Nah ini yg saya mau. Terimakasih banyak Mas Sugi.

BTW, code nya sudah saya modifikasi sedikit agar recordnya hanya berasal
dari "selected rows" pada DBGrid, bukan keseluruhan Dataset, seperti yg saya
mau.
Jadinya seperti dibawah ini.
(Note: Saya sudah coba pakai CSV, tapi gagal. Hasilnya setiap row terkumpul
pada 1 cell di Excel. Saya pakai Excel 2000)

procedure DBGridToClipBoard(aDBGrid:TDBGrid);
const CHAR_TAB = #9;
var
  SL:TStringList;
  aRow:String;
  kol,bar:integer;
begin
  SL:=TStringList.Create;
  try
    for bar:=0 to aDBGrid.SelectedRows.Count-1 do begin

aDBGrid.DataSource.DataSet.GotoBookmark(pointer(DBGrid1.SelectedRows.Items[b
ar]));
      aRow:='';
      for kol:=0 to aDBGrid.Columns.Count-1 do begin
        aRow:=aRow+aDBGrid.Fields[kol].AsString+CHAR_TAB;
      end;
      SL.Add(aRow);
    end;
    Clipboard.AsText:=SL.Text;
  finally
    SL.Free;
  end;
end;



----- Original Message -----
From: sugi <[EMAIL PROTECTED]>
To: <[EMAIL PROTECTED]>
Sent: Saturday, December 14, 2002 10:18 AM
Subject: RE: [Delphindo] DBGrid To Excel via Clipboard


> > > Sekalian mau tanya :
> > > Bagaimana trik nya untuk memindahkan data dari DBGrid ke MS Excel ?
> > > Sepertinya kita harus tahu "struktur Data di Clipboard" yg bisa
> > > diterima Excel.
> > > Bagaimana kita bisa tahu infromasi ini ?
> > > Apakah ada rekan yg pernah berhasil ?
> Actually, this is surprisingly easy to do. Format clipboard yang
> diterima adalah sama seperti CSV (bisa dengan comma-separated,
> atau tab-separated. ) Silakan lihat sourcecode dibawah.
>
> Salam,
> sugi.
>
> ...
> procedure DatasetToClipboard( ds : tDataset );
> const     CHAR_TAB = #9;
>           CHAR_CR = #10;
> var       bm : TbookmarkStr;
>           str : string;
>           i : integer;
>           sl : TStringList;
> begin
>      //
>      str := '';
>      sl := TStringList.Create;
>
>      try
>      Screen.Cursor := crHourGlass;
>      ds.DisableControls;
>      bm := ds.Bookmark;
>
>      ds.First;
>      while ds.Eof = false do begin
>            str := '';
>            for i:=0 to ds.FieldCount-1 do begin
>                str := str + ds.Fields[i].AsString + CHAR_TAB;
>            end;
>            sl.Add(str);
>            ds.next;
>            application.processmessages;
>      end;
>
>      Clipboard.AsText := sl.Text;
>
>      finally
>      sl.free;
>      ds.Bookmark := bm;
>      ds.EnableControls;
>      Screen.Cursor := crDefault;
>      end;
> end;
>
>
>
> Berlangganan: [EMAIL PROTECTED]
> Stop Berlangganan: [EMAIL PROTECTED]
> Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED]
>
> Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/
>
>


------------------------ Yahoo! Groups Sponsor ---------------------~-->
Get 128 Bit SSL Encryption!
http://us.click.yahoo.com/CBxunD/vN2EAA/xGHJAA/i7folB/TM
---------------------------------------------------------------------~->

Berlangganan: [EMAIL PROTECTED]
Stop Berlangganan: [EMAIL PROTECTED]
Keluhan Milis(Unbouncing,spam,dll): [EMAIL PROTECTED] 

Your use of Yahoo! Groups is subject to http://docs.yahoo.com/info/terms/ 


Kirim email ke