while not AdoQuery1.Eof do
     begin
        begin
        Excel.cells.item[row,col]:=AdoQuery1.FieldByName('字段').asstring;
        inc(col);
        Excel.cells.item[row,col]:=AdoQuery1.fieldbyname('字段').asstring;
        end;     
     AdoQuery1.Next;
     col:=1;
     inc(row);
     end;

解决方案 »

  1.   

    这个Excel是不是一个ole控件啊,还烦给说明一下!
      

  2.   

    不用ole控件,写清楚点
     Excel:=CreateOleObject('Excel.application');
     Excel.visible:=true;
     Excel.workbooks.add(worksheet);
    while not AdoQuery1.Eof do
        begin
            begin
            Excel.cells.item[row,col]:=AdoQuery1.FieldByName('字段').asstring;
            inc(col);
            Excel.cells.item[row,col]:=AdoQuery1.fieldbyname('字段').asstring;
            end;    
        AdoQuery1.Next;
        col:=1;
        inc(row);
        end; 
      

  3.   

    能不能让程序来自动运行,而不使excel出现,保存也由程序来控制?
      

  4.   

    读写execle的例子:
    unit UMain;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      Db, DBTables, StdCtrls, Grids, DBGrids,Excel97,Comctrls,OleCtnrs,ComObj;type
      TForm1 = class(TForm)
        DBGrid1: TDBGrid;
        Button1: TButton;
        Button2: TButton;
        DataSource1: TDataSource;
        Table1: TTable;
        procedure Button1Click(Sender: TObject);
        procedure Button2Click(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
      private
        { Private declarations }
      public
        XlsApp,XlsSheet,XlsWBk : Variant;
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var
      I,J : integer;
    begin
      if VarIsEmpty(XlsApp) then
        XlsApp := CreateOleObject('Excel.Application');  XLsApp.Workbooks.Add;
      XlsSheet := XLsApp.Worksheets['Sheet1'];  for I := 0 to Table1.Fields.Count - 1 do
      begin
        XlsSheet.Cells[3,I + 1] := dbgrid1.Columns[I].Title.Caption;
      end;  Table1.first;
      for J := 0 to Table1.RecordCount - 1 do
      begin
        for I := 0 to Table1.Fields.Count - 1 do
        begin
          XlsSheet.Cells[J + 4,I + 1] := Table1.Fields[I].AsString;
        end;
        Table1.Next;
      end;  XlsApp.Visible := true;
    end;procedure TForm1.Button2Click(Sender: TObject);
    var
      I,J : integer;
      TxtFile : TextFile;
      TmpString : String;
    begin
      try
        if VarIsEmpty(XlsApp) then
          XlsApp := CreateOleObject('Excel.Application');
        XlsSheet := XlsApp.workbooks.open('c:\my documents\book3.xls');    AssignFile(TxtFile,'C:\My Documents\Test.txt');
        Rewrite(TxtFile);
        try
          for I := 3 to 21 do
          begin
            TmpString := '';
            for J := 1 to 5 do
            begin
              TmpString := TmpString + XlsSheet.ActiveSheet.Cells[I,J].Text + '|';
            end;
            Writeln(TxtFile,Tmpstring);
          end;
        finally
          CloseFile(TxtFile);
        end;
        XlsApp.Visible := true;
      except
        XlsSheet.close;
        XlsApp.Application.quit;
        XlsApp := Unassigned;
        XlsSheet := Unassigned;
      end;
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
      if not VarIsEmpty(XlsApp) then
      begin
        XlsApp.DisplayAlerts := True;  // 7Discard unsaved files....
        try
          XlsApp.Application.Quit;
        except
        end;
      end;
    end;end.