首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

新手学习DELPHI编程遇到难题,特来请问高人

2012-02-29 
求助:新手学习DELPHI编程遇到难题,特来请教高人我编一个打开EXCEL文件的程序,这个程序运行时可以正常打开E

求助:新手学习DELPHI编程遇到难题,特来请教高人
我编一个打开EXCEL文件的程序,这个程序运行时可以正常打开EXCEL文件,但当选择“取消”(既不打开文件而直接关闭选择框)的时候却会给我报个错,
而且还提示我“请选择EXCEL文件”。请问这个问题怎么解决呢??

附上我写的:
procedure   TForm2.Button3Click(Sender:   TObject);
Var
i,j:integer;
begin
  opendialog1.InitialDir:=ExtractFileDir(paramstr(0));
    opendialog1.Execute;
      Try
      ExcelApplication1.Connect;
      Except
      MessageDlg( '请先安装Excel ',mtError,[mbOk],0);
      Abort;
      End;
    ExcelApplication1.Visible[0]:=True;
    ExcelApplication1.Caption:= 'Excel应用 ';
    try
    excelapplication1.Workbooks.Open(OpenDialog1.FileName,
    null,null,null,null,null,null,null,null,null,null,null,null,0);
    except
  begin
  ExcelApplication1.Disconnect;
  ExcelApplication1.Quit;
  showmessage( '请选择EXCEL文件 ');
  exit;
  end;
  end;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1]   as   _Worksheet);
stringgrid1.Cells[1,0]:= 'Wavelength ';
stringgrid1.Cells[2,0]:= 'AD ';
for   i:=6   to   3011   do
for   j:=1   to   3   do
begin
if   trim(ExcelWorksheet1.Cells.Item[i+1,1]) <> ' 'then
begin
stringgrid1.rowCount:=i+1;
stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];
end
else
begin
label3.caption:=inttostr(i-1);
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
Edit1.Text:=stringgrid1.Cells[1,1];
Edit2.Text:=stringgrid1.Cells[2,1];
Edit3.Text:=stringgrid1.Cells[3,1];
Exit;
end;
end;
end;

[解决办法]
procedure TForm2.Button3Click(Sender: TObject);
Var
i,j:integer;
begin
opendialog1.InitialDir:=ExtractFileDir(paramstr(0));
//opendialog1.Execute;
if opendialog1.Execute then
begin
Try
ExcelApplication1.Connect;
Except
MessageDlg( '请先安装Excel ',mtError,[mbOk],0);
Abort;
End;
ExcelApplication1.Visible[0]:=True;
ExcelApplication1.Caption:= 'Excel应用 ';
try
excelapplication1.Workbooks.Open(OpenDialog1.FileName,
null,null,null,null,null,null,null,null,null,null,null,null,0);
except
begin
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
showmessage( '请选择EXCEL文件 ');
exit;
end;
end;
ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _Worksheet);
stringgrid1.Cells[1,0]:= 'Wavelength ';
stringgrid1.Cells[2,0]:= 'AD ';
for i:=6 to 3011 do
for j:=1 to 3 do
begin
if trim(ExcelWorksheet1.Cells.Item[i+1,1]) <> ' 'then
begin
stringgrid1.rowCount:=i+1;
stringgrid1.Cells[j,i]:=ExcelWorksheet1.Cells.Item[i+1,j];
end
else
begin
label3.caption:=inttostr(i-1);
ExcelApplication1.Disconnect;
ExcelApplication1.Quit;
Edit1.Text:=stringgrid1.Cells[1,1];
Edit2.Text:=stringgrid1.Cells[2,1];
Edit3.Text:=stringgrid1.Cells[3,1];
Exit;
end;
end;
end;
end;

==================================
以下内容纯属广告,不可能雷同
e族百变桌面--特效更换桌面壁纸,丰富的网上资源支持,
Flash桌面,视频桌面……让您的桌面动起来!
http://www.popolong.com
==================================

热点排行