delphi读完excel文件后,如何关闭excel线程?
我读取了excel文件内容,关闭程序后,却总是有excel线程在运行,而且这个时候如果再打开excel是打不开的啊~~ ~ 为什么啊?我是通过dll读取的~~
读取代码如下:
procedure TfrmInportData.Button1Click(Sender: TObject);
var
i, j: integer;
BoxNo: variant;
msExcel, msExcelWorkbook, msExcelWorkSheet: variant;
od: TOpenDialog;
begin
//动态创建打开Excel文件对话框
od := TOpenDialog.Create(Self);
od.Title := '请选择你要导入的Excel文件:';
od.Filter := 'Microsoft Excel文件(*.xls)|*.xls';
//创建Excel对象
msExcel := CreateOleObject('Excel.Application');
msExcel.displayAlerts := false; //禁止运行宏时显示警告和提示信息
msExcel.ScreenUpdating := false; //屏幕更新,提高速度
//打开指定Excel文件
try
try
if od.Execute then
begin
msExcelWorkbook := msExcel.Workbooks.Open(od.FileName, null, null, null, null, null, null, null, null, null, null, null, null, null, 0);
msExcelWorkSheet := msExcelWorkbook.Worksheets[1];
end;
//开始往stringgrid里面写数据
for i := 1 to msExcelWorkSheet.Rows.Count do
for j := 1 to 34 do
begin
BoxNo := msExcelWorkSheet.Range['a' + IntToStr(i)].value;
ProgressBar1.Visible:=true;
progressBar1.Position:=i;
if BoxNo <> '' then
begin
StrGrInport.RowCount := i + 1;
StrGrInport.Cells[0, i] := '第' + IntToStr(i) + '条';
StrGrInport.Cells[j, i] := msExcelworkSheet.Cells.Item[i + 1, j];
end
else
begin
label2.Caption := inttostr(i - 2); //记录当前条数
exit;
end;
end;
except
on E: Exception do
MessageBox(handle, PAnsiChar('错误信息: ' + E.message), '提示', MB_OK + MB_ICONINFORMATION);
end;
begin
//msExcel.Disconnect;//
msExcel.Quit;
showmessage('请选择Excel文件!');
exit;
end;
finally
ProgressBar1.Visible:=false;
showmessage('当前文件导入完毕,请检查并存盘!');
end;
msExcel.Disconnect;
msExcel.Quit;
end;
那里有问题呢???