workbook:=createoleobject('execl.sheet');
  这句有错,SHEET不是用createoleobject创建的而是调用eclapp的方法,具体我不太记得了.
  可到EXCEL里去查

解决方案 »

  1.   

    workbook:=createoleobject('execl.sheet'); //没有这个对象
      

  2.   

    worksheet:=  这句错了
    worksheet应该有eclapp的属性得到,不是创建的
      

  3.   

    我参考他人的代码,运行通过: win2k+d5
    //部分数据导入Excel, intKindFlag = 数据类别
    procedure Tfrm_BillSQL.DataSetToExcel(intKindFlag: integer);
    Var
      vExcelApp,vWorkBook : variant;
      SaveDia : TSaveDialog;
      intRow,intCol,i : integer;
    begin
         intRow := 1;
         intCol := 1;
         i := 0;
         try
            // 创建ole对象 Excel Applocation 与 WorkBook
            vExcelApp := CreateOleObject('Excel.Application');
            vWorkBook := CreateOleObject('Excel.Sheet');
         except
            MessageBox(handle,'创建Ole错误,或者未安装 MicroSoft Excel ','错误',0);
            vExcelApp := Unassigned;
            vWorkBook := Unassigned;
            Exit;
         end;
         if (intKindFlag = 26)
            or (intKindFlag = 27)
            or (intKindFlag = 28) then
         begin
              try
                  fcstatusbar1.Panels[0].Text :=
                               '正在进行数据导出';
                  vWorkBook := vExcelApp.workbooks.add;
                  if NOT cdsSUMBillClass.IsEmpty  then
                  begin
                     cdsSUMBillClass.DisableControls;
                     for i := 0 to cdsSUMBillClass.FieldCount - 1 do
                     begin
                         vExcelApp.Cells[1,i+1] := string(cdsSUMBillClass.Fields[i].DisplayLabel);
                     end;
                     cdsSUMBillClass.First;
                     while not cdsSUMBillClass.Eof do
                     begin
                          intRow := intRow + 1;
                          intCol := 1;
                          for i := 0 to cdsSUMBillClass.FieldCount - 1 do
                          begin
                              vExcelApp.Cells[intRow,intCol].NumberFormat := '@';
                              vExcelApp.Cells[intRow,intCol] :=
                                            cdsSUMBillClass.Fields[i].asstring;
                              intCol := intCol + 1;
                          end;
                          cdsSUMBillClass.Next;
                     end;
                     try
                        SaveDia := TSaveDialog.Create(nil);
                        SaveDia.Filter := 'MicroSoft Excel 文件¦*.xls';
                        if SaveDia.Execute = true  then
                           vWorkBook.SaveAs(FileName := SaveDia.FileName);
                     finally
                        if SaveDia <> nil then
                           SaveDia.Free;
                        vWorkBook.close;
                     end;
                     fcstatusbar1.Panels[0].Text :=
                               '数据导出结束';
                  end
                  else
                  begin
                       fcstatusbar1.Panels[0].Text :=
                               '无数据导出';
                  end;
              except
                  vWorkBook.close;
                  vExcelApp.quit;
                  vExcelApp := Unassigned;
                  vWorkBook := Unassigned;
                  fcstatusbar1.Panels[0].Text :=
                               '数据导出过程错误';
              end;
              vWorkBook.close;
              vExcelApp.quit;
              vExcelApp := Unassigned;
              vWorkBook := Unassigned;
              cdsSUMBillClass.EnableControls;
         end;//数据导出 结束
    end;
      

  4.   

    你应该看看vba的帮助,vbaxl8.hlp(excel 97),2000为vbaxl9.hlp
    里面有详细的对象模型介绍
      

  5.   

    var
      eclapp, workbook: OleVariant;
      xlfilename: string;
    begin
      xlfilename := 'ex.xls';
      try
        eclapp := CreateOleObject('excel.application');
        workbook := eclapp.workbooks;
      except
        showmessage('你的机器未装excel!');
        exit;
      end;
    end;
      

  6.   

    try
    eclapp:=createoleobject('excel.application');
    workbook:=createoleobject('execl.sheet');
    //                         ~~~excel
    except
    showmessage('你的机器未装excel!');
    exit;