怎么作都不行,需要在已在存在表中再写入数据,结果按说明去操作,问题多多;基本的源代码如下
procedure TForm1.BitBtn1Click(Sender: TObject);
begin
   ExcelApp:=CreateOleObject('Excel.application');//不加这行,下面的open方法无效,ExcelAPP是全局变量,在另一  个                                                  地方已创建了
  
   ExcelApp.WorkBooks.Open(extractfilepath(application.ExeName)+'Demo1.xls');
   ExcelApp.Workbooks.add;
   ExcelApp.Visible:=false;
   ExcelApp.Cells[3,2].value:=edit1.text;
   ExcelApp.Cells[5,2].value:=edit2.text;
   ExcelApp.Cells[7,2].value:=edit3.text;
   ExcelApp.ActiveWorkBook.SaveAs(extractfilepath(application.ExeName)+'Demo1.xls');//这里保存也是问题,不让存讲重名
  // if  not ExcelApp.ActiveWorkBook.Saved   then   
   //  ExcelApp.ActiveSheet.PrintPreview;//这种方法来保存,基本就长G了程序,动不了了
   ExcelApp.Quit;   
end;

解决方案 »

  1.   

    直接ExcelApp.ActiveWorkBook.Save 行不行?
    前面已经是ExcelApp.WorkBooks.Open(extractfilepath(application.ExeName)+'Demo1.xls'); 了
      

  2.   

    不行,再保存的,没有名字和路径就变成保存了一个新的文件了,是book1.xls,而不是原来的demo1.xls文件了
      

  3.   

    SaveAs是另存为新的文档的,当然不允许重名了直接这样就行了
    ExcelApp.ActiveWorkBook.Saved:=true;
      

  4.   

    用ExcelApp.ActiveWorkBook.Saved:=true; 
     
    不行,这下也不挂机了,也没有错误显示了,但是没有数据保存进去;
      

  5.   

    你要先判断啊
     如果EXCEL已经存在了就用ExcelApp.ActiveWorkBook.Save
      如果不存在就用ExcelApp.ActiveWorkBook.SaveAs
      

  6.   

    ExcelApp.ActiveWorkBook.Saved:=true;
     这个只是标记你是不是已经存了
      没什么用的
     一般是你不准备保存而想退出的时候把这个设为TRUE,不然你退出的时候他会询问你是否保存,但是如果你EXCEL没有显示出来的话就会造成假死现象而导致程序无法操作
      

  7.   

    那就直接ExcelApp.ActiveWorkBook.Save
      

  8.   


     我知道了
      ExcelApp.Workbooks.add;这个错了
      你既然打开一个已经存在了的就不应该再加WORKBOOK了,最多加WORKSHEET
      

  9.   

    procedure TForm1.BitBtn1Click(Sender: TObject); 
    var
      xlsPath:string;
    begin
      xlsPath:=extractfilepath(application.ExeName)+'Demo1.xls';
      ExcelApp:=CreateOleObject('Excel.application');  ExcelApp.WorkBooks.Open(xlsPath);//打开已存在的Excel,就不需要用add
      ExcelApp.Cells[3,2].value:=edit1.text;
      ExcelApp.Cells[5,2].value:=edit2.text;
      ExcelApp.Cells[7,2].value:=edit3.text;
      ExcelApp.DisplayAlerts:=false;//取消覆盖提示
      ExcelApp.WorkBooks[1].saveas(xlsPath);
      ExcelApp.Quit;
      ExcelApp:=Unassigned;
    end;