type
  TExcelObject = class
  private
    FExcelApp : _Application;
  public
    constructor Create;
    destructor Destroy; override;
    procedure NewBook;
    procedure NewSheet(ACaption: String);
  end;{ TExcelObject }constructor TExcelObject.Create;
begin
  FExcelApp := CoExcelApplication.Create;
  FExcelApp.Visible := true;
end;destructor TExcelObject.Destroy;
begin
  try
    FExcelApp.Quit;
  except
  end;
  FExcelApp := nil;
  inherited;
end;procedure TExcelObject.NewBook;
//创建一个workbook,默认有3个sheet
begin
  FExcelApp.Workbooks.Add(null, 0);
end;procedure TExcelObject.NewSheet(ACaption: String);
//创建一个worksheet,当sheet数量需要更多时调用
begin
  //这里的代码怎么写??
end;

解决方案 »

  1.   

    var
     book:variant;
    begin
     book:=FExcelApp.ActiveWorkBook;
     if VarIsEmpty(book)=false then book.Worksheets.add
     else showmessage('ActiveWorkBook needed');
    end;
    试试,我也不知道行不行
      

  2.   

    var ExcelApp,bookss: Variant;
    beginExcelApp := CreateOleObject( 'Excel.Application' );
      ExcelApp.Visible := true;
      bookss:=ExcelApp.Workbooks.Add;
      bookss.Worksheets.add;测试成功!
      

  3.   

    感谢两位
    procedure TExcelObject.NewSheet(ACaption: String);
    var
      book, sheet : variant;
    begin
      if FExcelApp.ActiveWorkBook<>nil then begin
        book := FExcelApp.ActiveWorkBook;
        sheet := book.Worksheets.Add;
        if ACaption<>'' then sheet.Name := ACaption;
      end;
    end;