procedure TMainForm.Button7Click(Sender: TObject);
var
s, strFname, lFilename : string;
App, Exc, E1 ,UsedRange,Rows: object;
FApp, FDocs, Ac, range, row : system.DispatchHelper;
begin
if OpenDialog1.Execute then
begin
lFileName := OpenDialog1.FileName;
App := ComObj.CreateOleObject('Excel.Application');
FApp := system.DispatchHelper.Create(App);
FApp.PropertyPut('visible',[false]);
Exc := FApp.PropertyGet('Workbooks',[]);
FDocs := system.DispatchHelper.Create(Exc);
FDocs.InvokeMethod('open',[lFileName]);
E1 := Fapp.PropertyGet('ActiveSheet',[]);
Ac := system.DispatchHelper.Create(E1);
UsedRange := ac.PropertyGet('UsedRange',[]);
range := System.DispatchHelper.Create(UsedRange);
Rows :=range.PropertyGet('Rows',[]);
row := System.DispatchHelper.Create(Rows);
s :=ObjectHelper.ToString(row.PropertyGet('count',[]));
FApp.InvokeMethod('Quit',[]);
(Rows as System.IDisposable).Dispose;
(UsedRange as System.IDisposable).Dispose;
(E1 as System.IDisposable).Dispose; //释放
(App as System.IDisposable).Dispose; //释放
(Exc as System.IDisposable).Dispose; //释放
end;
end;
我这样写是没有问题的。 |