procedure TFrmConsume.PrintClick(Sender: TObject);
var
  Ex,Exs:Variant;
  i,j:integer;
  FileName:String;
  Sign:Boolean;
  Str:string;
begin
  FileName:=ExtractFilePath(ParamStr(0))+'Modal.xls';
  Ex:=CreateOleObject('Excel.Application');
  Exs:=CreateOleObject('Excel.Sheet');
  Ex.Visible:=False;
  Exs:=Ex.WorkBooks.open(Filename);
  Sign:=True;
  i:=2;
  DM.ADOCon.BeginTrans;
  While Sign=True do
  begin
    str:=Trim(Ex.Cells(i,1));
    if str='' then
       Sign:=False
    else
    begin
       DM.QConsume.Append;
       for j:=1 to 4 do
           DM.QConsume.Fields[j].Asstring:=Trim(Ex.Cells(i,j));
       DM.QConsume.Post;
       inc(i);
    end;
  end;
  Ex:=Unassigned;
  Exs:=Unassigned;
  Try
    DM.ADOCon.CommitTrans;
  Except
    DM.ADOCon.RollbackTrans;
    Showmessage('数据导入发生错误!');
    exit;
  end;
  Showmessage('成功倒入数据!');end;
为什么这段程序完不成上述要求。