var
  i,j,row,column:integer;  //定义用于控制的单元格的变量
begin
    try
     outputApplication.connect;
   Except
     application.MessageBox('Excel 2000 是否已经正确安装','提示');
     exit;
   end;
   outputApplication.Visible[0]:=true;
   outputApplication.Caption:='统计数据;
   outputApplication.Workbooks.Add(NULL,0);
   outputApplication.SheetsInNewWorkbook[0]:=1;
   outputApplication.Workbooks.Add(emptyParam,0);
   outputWorkbook.ConnectTo(outputApplication.Workbooks[1]);
   outputWorksheet.ConnectTo(outputWorkbook.Worksheets[1] as _Worksheet);
   for i:=1 to outputGrid.FieldCount do
       begin
       outputWorksheet.Cells.Item[1,i]:=outputGrid.Fields[i-1].DisplayLabel;
       //showmessagefmt('第一列的值是:%s',[outputWorksheet.Cells.Item[1,i]]);
       end;
   row:=2;
   //delbaseQuery.First;
   for i:=1 to delbaseQuery.RecordCount do
      begin
        column:=1;
        for j:=1 to outputGrid.FieldCount do
           begin
              outputWorksheet.Cells.Item[row,column]:=delbaseQuery.Fields[j-1].AsString;
              //showmessagefmt('第一列的值是:%s',[outputWorksheet.Cells.Item[row,column]]);
              column:=column+1;
           end;
            row:=row+1;
           delbaseQuery.Next;
      end;数据赋值都正确,excel就是显示不了worksheet中的数据,急!急!

解决方案 »

  1.   

    我用的一段代码,仅供参考!
    unit excelyy;interfaceuses
      Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
      StdCtrls, Buttons, ExtCtrls, DBCtrls, Grids, DBGrids, IBDatabase, Db,
      IBCustomDataSet, IBQuery, Excel97, OleServer;type
      TForm1 = class(TForm)
        ExcelApplication1: TExcelApplication;
        ExcelWorksheet1: TExcelWorksheet;
        ExcelWorkbook1: TExcelWorkbook;
        SaveDialog1: TSaveDialog;
        IBQuery1: TIBQuery;
        DataSource1: TDataSource;
        IBDatabase1: TIBDatabase;
        IBTransaction1: TIBTransaction;
        DBGrid1: TDBGrid;
        DBNavigator1: TDBNavigator;
        connectBtn: TBitBtn;
        insertdadaBtn: TBitBtn;
        saveBtn: TBitBtn;
        quitBtn: TBitBtn;
        closeappBtn: TBitBtn;
        Label1: TLabel;
        procedure connectBtnClick(Sender: TObject);
        procedure FormCreate(Sender: TObject);
        procedure insertdadaBtnClick(Sender: TObject);
        procedure saveBtnClick(Sender: TObject);
        procedure quitBtnClick(Sender: TObject);
        procedure closeappBtnClick(Sender: TObject);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.DFM}procedure TForm1.connectBtnClick(Sender: TObject);
    begin
    try
    ExcelApplication1.Connect;
    except
    MessageDlg('是否正确安装了Excel?',mtError,[mbok],0);
    abort;
    end;
    ExcelApplication1.Visible[0]:=true;
    ExcelApplication1.Caption:='Excel应用';
    ExcelApplication1.Workbooks.Add(Null,0);
    ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
    ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
    end;procedure TForm1.FormCreate(Sender: TObject);
    begin
    IBQuery1.close;
    IBQuery1.open;
    showmessage(intToStr(IBQuery1.fieldcount));
    end;procedure TForm1.insertdadaBtnClick(Sender: TObject);
    Var
    i,row,column:integer;
    begin
    ExcelWorksheet1.Cells.Item[1,1]:='表编号';
    ExcelWorksheet1.Cells.Item[1,2]:='表代号';
    ExcelWorksheet1.Cells.Item[1,3]:='表详细名称';
    ExcelWorksheet1.Cells.Item[1,4]:='表说明';
    row:=2;
    While NOT(IBQuery1.eof) Do
    begin
    Column:=1;
    for i:=1 to IBQuery1.FieldCount do
    begin
    ExcelWorksheet1.Cells.Item[row,column]:=IBQuery1.fields[i-1].AsString;
    Column:=Column+1;
    end;
    IBQuery1.Next;
    row:=row+1;
    end;
    end;procedure TForm1.saveBtnClick(Sender: TObject);
    begin
    if Savedialog1.Execute then
    ExcelWorksheet1.SaveAs(SaveDialog1.FileName);
    end;procedure TForm1.quitBtnClick(Sender: TObject);
    begin
    ExcelApplication1.Quit;
    ExcelApplication1.Disconnect;
    end;procedure TForm1.closeappBtnClick(Sender: TObject);
    begin
    Close;
    end;end.