请各位高手指教。

解决方案 »

  1.   

    DBGRID中的数据导出到EXCEL中:procedure TForm_gchhs.toexcel(grid:tdbgrid;qu:tdataset);
    var
    eclApp,WorkBook:Variant;
    xlsFileName:string;
       L: Integer;
     s, lang:string;
     i,j:integer;
     jj:integer;
     xssz:array [0..100] of integer;
     xssm:array [0..100] of string;
     k:integer;
     kk:integer;
    beginif form_gchhs.s.Execute then
    begin
    xlsFileName:= form_gchhs.s.FileName;
    try
    //创建OLE对象Excel Application与 WorkBook
     eclApp:=CreateOLEObject('Excel.Application');
     WorkBook:=CreateOLEObject('Excel.Sheet');
     except
    ShowMessage('您的机器里未安装Microsoft Excel。');
    Exit;
    end;
    for i:=0 to 100 do
    begin
    xssz[i]:=0;
    xssm[i]:='';
    end;
    k:=-1;
    l:=1;
    workBook:=eclApp.workBooks.Add;
    for i:=0 to grid.Columns.Count -1 do
    begin
     if grid.Columns[i].visible=true then
     begin
     k:=k+1;
     xssz[k]:=i;
     for kk:=0 to qu.FieldCount -1 do
     begin
     if qu.Fields[kk].fieldname=grid.columns[i].fieldname then
     xssz[k]:=kk;
     end;
     xssm[k]:=grid.columns[i].title.caption;
     eclApp.Cells(l , k+1):=xssm[k];
     end;
    end;
    with qu do
    begin
     first;
     while not qu.eof do
      begin
       l:=l+1;
        for j:=0 to k do
        eclApp.Cells(l , j+1):=fields[xssz[j]].AsString;
       qu.next;
      end;
    end;
    WorkBook.saveas(xlsFileName);
    WorkBook.Close;
    eclApp.Quit;
    //退出Excel Application
    //释放VARIANT变量
    //eclApp:=Unassigned;
    ShowMessage('文件已保存!');
    end;
    end;
      

  2.   

    安装一个dxdbgrid控件,可以象我做的http://www.skycn.net/soft/21193.html这个软件中,点列表表头右键有个输出,输出到EXCEL就可以了,你也可以让dxdbgrid不显示,都写代码控制就行了