大哥們:
  請問有什麼又快又好的方法可以把dbrid的數據轉成excel,如果有第三方控件的話請發[email protected]

解决方案 »

  1.   

    CSDN上好多这样的解答...自己找找
      

  2.   

    http://search.csdn.net/Expert/topic/732/732541.xml?temp=.7152826
      

  3.   

    很简单的
    如果是简单的导出很简单的
    我给你一个d语言的procedure CopyDbDataToExcel(Target: TDbgrid;sheetname:string;filename:string);
    var
    iCount, jCount: Integer;
    XLApp: Variant;
    Sheet: Variant;
    begin
    Screen.Cursor := crHourGlass;
    if not VarIsEmpty(XLApp) then
    begin
    XLApp.DisplayAlerts := False;
    XLApp.Quit;
    VarClear(XLApp);
    end;
    //通过ole创建Excel对象
    try
    XLApp := CreateOleObject('Excel.Application');
    except
    Screen.Cursor := crDefault;
    Exit;
    end;
    XLApp.WorkBooks.Add[filename];    //你要把数据放在那里
    XLApp.WorkBooks[1].WorkSheets[1].Name := sheetname;
    Sheet := XLApp.Workbooks[1].WorkSheets[XLApp.WorkBooks[1].WorkSheets[1].Name];
    if not Target.DataSource.DataSet.Active then
    begin
    Screen.Cursor := crDefault;
    Exit;
    end;
    Target.DataSource.DataSet.first;
    //ExcelWorkSheet1.Cells.NumberFormat :='@'for iCount := 0 to Target.Columns.Count - 1 do
    begin
    Sheet.cells[1, iCount + 1] := Target.Columns.Items[iCount].Title.Caption;
    end;
    jCount := 1;
    while not Target.DataSource.DataSet.Eof do
    begin
    for iCount := 0 to Target.Columns.Count - 1 do
    begin
    Sheet.cells[jCount + 1, iCount + 1] := Target.Columns.Items[iCount].Field.AsString;
    end;
    Inc(jCount);
    Target.DataSource.DataSet.Next;
    end;
    XlApp.Visible := True;
    Screen.Cursor := crDefault;
    end;
      

  4.   

    我程序里的一段
    procedure CopyDbDataToExcel(Target: TDbgrid;sheetname:string;filename:string);
    这些是传入函数