如题

解决方案 »

  1.   


    //转贴!!
    unit Unit1;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Grids, DBGrids, Db, DBTables, Excel97, OleServer, Word97;
    type
      TForm1 = class(TForm)
        ExcelApplication1: TExcelApplication;
        ExcelWorkbook1: TExcelWorkbook;
        ExcelWorksheet1: TExcelWorksheet;
        Table1: TTable;
        DataSource1: TDataSource;
        DBGrid1: TDBGrid;
        Button1: TButton;
        Button4: TButton;
        WordApplication1: TWordApplication;
        WordDocument1: TWordDocument;
        procedure Button1Click(Sender: TObject);
        procedure Button4Click(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.Button1Click(Sender: TObject);
    var
      i, row, column: integer;
    begin
      Try
        ExcelApplication1.Connect;
      Except
        MessageDlg('Excel may not be installed',
          mtError, [mbOk], 0);
        Abort;
      End;
      ExcelApplication1.Visible[0] := True;
      ExcelApplication1.Caption := 'Excel Application';
      ExcelApplication1.Workbooks.Add(Null, 0);
      ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
      ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
      DBGrid.DataSource.DataSet.Open;
      row := 1;
      While Not (DBGrid.DataSource.DataSet.Eof) do
      begin
        column := 1;
        for i := 1 to DBGrid.DataSource.DataSet.FieldCount do
        begin
          ExcelWorksheet1.Cells.Item[row, column] := DBGrid.DataSource.DataSet.fields[i - 1].AsString;
          column := column + 1;
        end;
        DBGrid.DataSource.DataSet.Next;
        row := row + 1;
      end;
    end;procedure TForm1.Button4Click(Sender: TObject);
    begin
      ExcelApplication1.Disconnect;
      ExcelApplication1.Quit;
    end;end.