try
         MyExcelApplication.Connect;
      except
         application.MessageBox('连接Execl失败!,请检查Execl安装与否!','软件');
         Exit;
      end;
      Try
         MyExcelApplication.Visible[0] := true;
         MyExcelApplication.Caption := '我的应用程序调用 Microsoft Excel';
         MyExcelApplication.Workbooks.Open(afilename,EmptyParam,EmptyParam,
               EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,
               EmptyParam,EmptyParam,EmptyParam,EmptyParam,EmptyParam,1)
         MyExcelApplication.Worksheets.Add(EmptyParam,EmptyParam,1,EmptyParam,1);
         SheetID:=MyExcelApplication.Worksheets.Count;
         sheet:=MyExcelApplication.Worksheets.Item[sheetid];
         sheet.name:=aCaption;
         sheet.Cells[1,4].Value:=acaption;//'第一行第四列';         MyExcelApplication.DisplayAlerts[1]:=false;
         MyExcelApplication.Workbooks[1].Saved[SheetID]:=true;      finally
         MyExcelApplication.Disconnect;
         MyExcelApplication.Quit;      end;
这样直接退出,将不能保存所修改的。
如果将MyExcelApplication.DisplayAlerts[1]:=false;改为true,会弹出一个对话框进行手动保存是可以的。
现在不想让手工保存,在退出时能自地动保存。
应该设置哪个呢??

解决方案 »

  1.   

    应该用 MyExcelApplication.ActiveWorkBook.saveas(fileName)保存工作簿!
      

  2.   

    给你一个全的:
    procedure TForm1.CreatOleClick(Sender: TObject);
    var
      i,j,Num: integer;
      str:char;
    begin
      try
        MsExcel := CreateOleObject('Excel.Application');
        WorkBook := MsExcel.WorkBooks.Add;
        WorkSheet := MsExcel.WorkSheets.Add;
      except
        MessageDlg('Can nott creat Excel!', mtWarning, [mbOK], 0);
        exit;
      end;
      MsExcel.Visible := True;
      for j:=1 to 10 do begin
        str:=chr(64+j);
      for i := 1 to 20 do begin
        num:=i*j;
        WorkSheet.Range[str + IntToStr(i)].Value :=num ;
      end;
      end;
      try
        WorkSheet.SaveAs(ExtractFilePath(Application.EXEName) + 'TEMP.XLS');
      except
        MessageDlg('Can not save as TEMP.XLS!', mtInformation, [mbOK], 0);
      end;
    end;
      

  3.   

    这么快都回答了。还想给删除了呢?
    用close属性就可以了。。2楼回答的是不是打开已存在的
      

  4.   

    这么快都回答了。还想给删除了呢?
    用close属性就可以了。。2楼回答的是不是打开已存在的