strFieldNamePath:='c:/aaa.xls';       try
         v:=CreateOleObject('Excel.Application');
         v.WorkBooks.open(strFieldNamePath);
         Sheet:=v.workBooks[1].workSheets[1];
         //Sheet.cells.clear;
       Except
         ShowMessage('初始化Excel失败,可能没有装Excel或者其他错误,请重起再试');
         v.DisplayAlerts:=False;
         v.quit;
         Exit;
       end;       //添加数据
       for j:=0 to DBGridList.Columns.Count-1 do
          begin
             i:=0;
             Sheet.Cells[i+1,j+1]:=DBGridList.Columns[j].FieldName;
          end;
             while not Datafrm.ADOQueryTempPromotion.Eof do
                begin
                  for j:=0 to DBGridList.Columns.Count-1 do
                     begin
                       Sheet.Cells[i+2,j+1]:=Datafrm.ADOQueryTempPromotion.FieldByName(DBGridList.Columns[j].FieldName).AsString;
                     end;
                  inc(i);
                  Datafrm.ADOQueryTempPromotion.Next;
                end;
       //添加数据       if not VarIsEmpty(v) then
          begin
            v.DisplayAlerts:=true;
            v.WorkBooks[1].close(True,'strFieldNamePath');
            v.quit;
            Application.Restore;
            Application.BringToFront;
          end;

解决方案 »

  1.   

    if Ea_Change.Workbooks.Count>0 then
        begin
          try
            Ea_Change.Workbooks.Close(1);
            Ea_Change.Workbooks.Add(NULL, 0);
          except
            gShowErrorMessage('您未对上次导出的数据进行保存或者放弃保存,无法进行本次数据导出!');
            exit;
          end; 
        end
        else
          Ea_Change.Workbooks.Add(NULL, 0);
      

  2.   

    郭三少爷:
       我把你的代码放进去,不能晴空,请详细告知放在那里?
       程序运行到Ea_Change.Workbooks.Close(1);
            Ea_Change.Workbooks.Add(NULL, 0);时,显示错误,“无效的索引”
      

  3.   

    在EXCEL里用宏很简单,
    该问题应属于Office开发/VBA版块
      

  4.   

    Sheet:=v.workBooks[1].workSheets[1];的前面。
      

  5.   

    s_Excel.Activesheet.Cells.Select;
     s_Excel.Selection.ClearContents;