RTRT  我把Excel导入到Stringgrid中,操作后,可是不知道怎么存为Excel;我知道还有ADO等其他方法,我现在就想实现这个 ,谁帮帮忙

解决方案 »

  1.   

    procedure TDM.CopySGDataToExcel(Target: TStringGrid;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;    //你要把数据放在那里啊,先生成个文件在e:\1.xls
    XLApp.WorkBooks[1].WorkSheets[1].Name := 'sheet1';
    Sheet := XLApp.Workbooks[1].WorkSheets['sheet1'];
    Target.Row := 0;
    for iCount := 0 to Target.RowCount - 1 do
    begin
     for jCount := 0 to Target.ColCount - 1 do
       Sheet.cells[iCount + 1, jCount + 1] := Target.Cells[jCount,iCount];
     Target.Row := iCount;
    end;
    XLApp.ActiveWorkbook.SaveAs(FileName:=FileName);
    Screen.Cursor := crDefault;
    XLApp.ActiveWorkbook.Close;
    end;
      

  2.   

    从DBGrid,StringGrid导出Excel 
    http://blog.csdn.net/ghy412/archive/2005/04/07/338957.aspx
      

  3.   

    是不是用到了ole中的什么控件啊  
      

  4.   

    var F: TextFile;
       S: string;
       const spath='.\文件夹\';
    begin
      if not directoryExists(getcurrentdir+sPath) then
      begin
        forcedirectories(getcurrentdir+sPath);
      end;
       SaveDialog1.FileName:=getcurrentdir+sPath+'XXX.xls';
          AssignFile(F, SaveDialog1.FileName);
          Rewrite(F);
          s:=A+','+B+','+C+','+D+','+E+','+F+','+G+','+H;
          Writeln(F, S);
          QryData.First;
          while not QryData.Eof do
          begin
             S := QryData.Fieldbyname(A).AsString + ',' +
                QryData.Fieldbyname(B).AsString + ',' +
                QryData.Fieldbyname(C).AsString + ',' +
                QryData.Fieldbyname(D).AsString + ',' +
                QryData.Fieldbyname(E).AsString + ','+
                QryData.Fieldbyname(F).AsString + ','+
                QryData.Fieldbyname(G).AsString+'H'+ ','+
                QryData.Fieldbyname(H).AsString;
             Writeln(F, S);
             QryData.Next;
          end;     CloseFile(F);
      

  5.   

    FileName 这个参数不就是文件保存位置么
      

  6.   


    XLApp.ActiveWorkbook.SaveAs('C:\Delphi\123.xls') ;
      

  7.   

    那需要加一个savedialog1组件if SaveDialog1.Execute then   
       XLApp.ActiveWorkbook.SaveAs(SaveDialog1.FileName);