我使用的代码如下,但与期望的不一致(出现提示,保存2次)。请您指教!
procedure TMainForm.DQryToExcel(cQName,dQName:TQuery;fName:string);
var i,j,k:integer;
    TStr,cNameStr:string;
    lcid:integer;
    workbook1:_workbook;
    ws:olevariant;
begin  //cQName需要导出数据的字段名
  //dQName需要导出的数据集
  //fName导出后的Excel文件名  //启动Excel2000
  try
    lcid:=GetUserDefaultlcid;
    ExcelApplication1.Connect;
    ExcelApplication1.Visible[lcid]:=True;
    ExcelApplication1.Caption := fName;
    workbook1:=ExcelApplication1.Workbooks.Add(emptyparam,lcid);
    //新建Excel工作薄workboook1
    ws:=ExcelApplication1.ActiveSheet as _worksheet;    //导出代码省略    //保存导出的Excel文件
   TStr:=ExtractFilePath(Application.Exename) + '导出的Excel文件\' + FName + '.xls';
    ExcelApplication1.Save(TStr,lcid);    //退出 Excel:
    ExcelApplication1.Quit;
    ExcelApplication1.Disconnect;  except
    MessageDlg('打开Excel出错!',mtError,[mbOK],0);
  end;end;

解决方案 »

  1.   

    ActiveWorkbook.SaveAs Filename:= _
            "C:\Documents and Settings\CHN0003114\My Documents\Book1.xls", FileFormat:= _
            xlNormal, Password:="", WriteResPassword:="", ReadOnlyRecommended:=False _
            , CreateBackup:=False上面是宏里面的VB代码,可能需要改下,很久之前就有这样的解答了吧,你引用的时候用xx.save(文件名,文件形式,密码,确认密码,访问,创建备分)这样的形式试下。
      

  2.   


    procedure TForm1.Button1Click(Sender: TObject);
    var a : Variant;
    begin
       a := CreateOleObject('Excel.Application');
       a.Visible := True;
       a.DisplayAlerts := False; {关键是这里}
       a.Workbooks.Open('c:\Book1.Xls');
       a.ActiveWorkbook.SaveAs('c:\Book2.Xls');
       a.ActiveWorkbook.SaveAs('c:\Book1.Xls');
    end;
      

  3.   

    操作完后   
      MyExcel.DisplayAlerts:=false;
      MyExcel.Activeworkbook.saveas(TempFileName);//    c:\test\test.xls
      MyExcel.Activeworkbook.close(false);
      MyExcel.quit;