我编写一个DBF数据转换成EXCEL数据的软件,在DBF记录数据太多时电脑会当机,请各位帮忙分析,是否EXCEl有记录数限制procedure TForm1.Button3Click(Sender: TObject);//找开DBF数据库文件
var
 ConStr:string;
 FDataPath:string;
begin
if opendialog1.Execute then
 edit1.Text:=Opendialog1.FileName;FDataPath:=Extractfilepath(edit1.Text);
ConStr:='Provider=MSDASQL.1;Extended Properties="Driver={Microsoft Visual FoxPro Driver};SourceDB='+FDataPath+';SourceType=DBF;Exclusive=No;"';
ADOConnection1.Close ;
ADOConnection1.ConnectionString:=ConStr;  try
     ADOConnection1.connected:=true;
     ADOQuery1.Connection:=ADOConnection1;
     with ADOQuery1 do
     begin
      close;
      sql.Clear;
      sql.Add('select * from');
      sql.Add(ExtractFileName(edit1.text));
      open;
     end;  except
    MEssageDlg('DBF数据文件打开出错',mtWarning,[mbOk],0);
    abort;
  end;
end;procedure TForm1.Button1Click(Sender: TObject);  //将DBF数据转换成EXCEL数据
var
 Temp_Worksheet:_WorkSheet;
 Filename:string;
 i,row,column:integer; 
begin
if edit1.Text='' then
 begin
 MEssageDlg('请选择需转换的DBF文件',mtWarning,[mbOk],0);
 abort;
 end;  Try
  ExcelApplication1.Connect;
  Except
  MessageDlg('Excel 可能没有安装', mtError, [mbOk], 0);
  exit;
  End;
  ExcelApplication1.Visible[0]:=false;
  ExcelApplication1.Caption:='DBF数据转出为EXCEL文档';
  filename:=leftstr(edit1.text,length(edit1.Text)-4)+'.xls'; if FileExists(filename)=false then
    begin
     ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks.Add(EmptyParam,0));
     Temp_Worksheet:=ExcelWorkbook1.Worksheets.add(EmptyParam,EmptyParam,
                                 EmptyParam,EmptyParam,0) as _WorkSheet;
     ExcelWorkSheet1.ConnectTo(Temp_WorkSheet);
     ExcelWorkSheet1.Name:=ExtractFileName(edit1.text);
     ExcelWorkSheet1.Activate;
  row:=1;
  column:=1;
 for i:=1 to adoquery1.FieldCount do
   begin  ExcelWorksheet1.Cells.Item[row,column]:=ADOQuery1.Fields[i-1].FieldName;
   column:=column+1;
   end;   row:=2;
  While Not(adoquery1.Eof) do
  begin
   column:=1;
   for i:=1 to adoquery1.FieldCount do
   begin
   //showmessage( inttostr(i)+'   '+adoquery2.fields[i-1].AsString);
    ExcelWorksheet1.Cells.Item[row,column]:=adoquery1.fields[i-1].value;
    column:=column+1;
   end;
   adoquery1.Next;
   row:=row+1;
  end;  Excelworksheet1.SaveAs(filename);
  MessageDlg('DBF数据转换XLS数据成功!'+#13+#13+'数据地址如下:'+#13+#13+filename,mtInformation,[mbOK],0);
 end     //for no find filename
 else
   begin
   ExcelApplication1.Disconnect;
   ExcelApplication1.Quit;
   MessageDlg('数据已经存在,不需再转换!'+#13+#13+'数据地址如下:'+#13+#13+filename,mtInformation,[mbOK],0);
   exit;
   end;  Excelworkbook1.Disconnect;
  excelworksheet1.Disconnect;
  ExcelApplication1.Disconnect;
  ExcelApplication1.Quit;end;