程序如下,我只是希望数据定时输出到指定的Excel文件中,然后自动保存,因为是服务器,不可能人工去点击是、否或取消,可是程序总提示我点击。请帮忙。
procedure  outputexcel;
var xls,xlsworkbook,xlsworksheetData: OleVariant;
    i,icount : integer ;
begin
  try
    try
      xls :=GetActiveOleObject('Excel.application');
    except
      xls :=CreateOleObject('Excel.application');
    end;
  except
  end;
  try
    xls.workbooks.open('d:\test\数据.xls');
        //我以前用的是 xlsworkbook:=xls.workbooks.add('d:\test\test.xls')
        //可他打开的是数据1.xls
  except
  end;
  xls.visible :=true ;
  xlsworksheetdata := xls.workbooks[1].worksheets[1];//
           //以前用的xlsworksheetdata := xls.workbooks.activesheet;就对,
          //可改后这里也有问题,如果已经打开其他Excel,则数据默认输出到
         //别的Excel中,而不是我知道的数据.xls
  try
    i := 1 ;
    while trim(xlsworksheetdata.cells[i,1]) <> '' do
    begin
      i := i + 1 ;
      next;
    end;
    xlsworksheetdata.cells[i,1] := 420 ;
    xlsworksheetdata.cells[i,2] := 60 ;
  except
    xls.workbooks.Close ;
    exit;
  end;
  xls.workbooks.save;//程序报错误命令,如果用xls.save则提示覆盖
  xls.workbooks.Close ;
end;

解决方案 »

  1.   


    另外一种方法
    procedure TForm1.Button2Click(Sender: TObject);
    var
        i:integer;
        li_row:integer;
        ExcelApplication1:tExcelApplication;
        ExcelWorkbook1:tExcelWorkbook;
        ExcelWorksheet1:tExcelWorksheet;
    begin
    try
            ExcelApplication1:=tExcelApplication.Create(nil);
            ExcelWorkbook1:=tExcelWorkbook.Create(nil);
            ExcelWorksheet1:=tExcelWorksheet.Create(nil);
            ExcelApplication1.AutoConnect:=false;
           // ExcelApplication1.ConnectTo( nil);
            ExcelApplication1.Connect;//EXCEL应用程序
    //
        Except
            MessageDlg('Excel may not be installed',mtError, [mbOk], 0);
            Abort;
        End;    ExcelApplication1.Visible[0]:=true;
       // ExcelApplication1.Caption:='Excel Application';
          {  ExcelApplication1.Workbooks.Open(as_FileName  ,
                EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                EmptyParam,EmptyParam,EmptyParam,EmptyParam,0);
           }//        ExcelApplication1.Workbooks.Add(EmptyParam,0);
            //ExcelWorkbook1.Connectto( ExcelApplication1.Workbooks[1] ) ;      //  ExcelWorkbook1.Connectto( ExcelApplication1.Workbooks.Add(EmptyParam,0)  ) ;
      ExcelWorkbook1.Connectto( ExcelApplication1.Workbooks.Open('d:\test\数据.XLS'  ,
                EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                EmptyParam,EmptyParam,EmptyParam,EmptyParam,
                EmptyParam,EmptyParam,EmptyParam,EmptyParam,0)) ;       // ExcelWorkbook1.ConnectTo( as _workbook  );//ExcelWorkbook1与Eexcelapplication1建立连接
            ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);//Excelworksheet1与
            //ExcelWorksheet1.Cells.Item[1,1]:='1';     li_row:=1;  
         ExcelWorksheet1.Rows.Font.Name:='宋体';
         ExcelWorksheet1.Rows.Font.size:=9;
         ExcelWorksheet1.Rows.AutoFit;
         ExcelWorksheet1.Cells.Item[1,1]:=NOW();
        // ExcelWorksheet1.SaveAs('d:\test\数据.XLS')   ;
         ExcelWorkbook1.Save;      ExcelWorksheet1.Disconnect;
        ExcelWorkbook1.Disconnect;
        ExcelApplication1.Disconnect;
        ExcelWorksheet1.Free;
        ExcelWorkbook1.Free;
        ExcelApplication1.Free;
      

  2.   

    xlsworksheetdata := xls.workbooks[1].worksheets[1];//
               //以前用的xlsworksheetdata := xls.workbooks.activesheet就对,
              //可改后这里也有问题,如果已经打开其他Excel,则数据默认输出到
             //别的Excel中,而不是我知道的数据.xls
      

  3.   

    Xls.DisplayAlerts:=False;
    我试了,他是不提问是否保存了,可是数据也存不进去呀