如題,在代碼里,如果我不加入畫線的代碼,excel的行程就能自動釋放;但是,我加上畫線的代碼后,excel的行程就釋放不了了,什么鬼情況啊,哪位大神能解惑~?
方法一:
// Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]].borders[1].linestyle:=1;
// Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]].borders[2].linestyle:=1;
// Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]].borders[3].linestyle:=1;
// Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]].borders[4].linestyle:=1;
// Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]].Characters.Font.FontStyle :='加粗';
方法二:
// range:=Temsheet.Range[Temsheet.cells[1,1],Temsheet.cells[1,16]];//選定表格
// range.borders[1].linestyle:=1;
// range.borders[2].linestyle:=1;
// range.borders[3].linestyle:=1;
// range.borders[4].linestyle:=1;
// Range.Characters.Font.FontStyle :='加粗';
// range.select;
兩種方法都沒用,excel的行程都在。。
uj5u.com熱心網友回復:
這就是使用OLE呼叫EXCEL的弊端。卡住了,建議使用第三方控制元件,寫EXCEL。uj5u.com熱心網友回復:
退出EXCL,釋放VariantEexcelApp.Quit;
Sheet :=Unassigned ;
ETApp:=Unassigned;
uj5u.com熱心網友回復:
退出EXCL,釋放VariantEexcelApp.Quit;
Sheet :=Unassigned ;
EexcelApp:=Unassigned;
uj5u.com熱心網友回復:
這是我匯出excel的主代碼,你參考最后一段釋放部分with FormProgress do
begin
Show;
try
InitProgressState('正在生成Excel檔案');
vResult:=RepCreat(aExportInfo.MainTitle);
if vResult<>'' then
begin
raise Exception.Create(vResult);
end;
SetProgressState('正在生成Excel作業表',10);
CreatRepSheet(2,2);
SetProgressState('正在生成標題',5);
CreatTitle(aExPortInfo);
SetProgressState('正在生成表頭',5);
CreatSubHead(aExportInfo);
SetProgressState('正在寫入資料',5); //里面計算其余的70
WriteData(aExportInfo);
SetProgressState('正在顯示檔案',5);
FreeAndNil(FormProgress);
ExlApp.Visible:=True;
except
on E:Exception do
begin
FormProgress.Close;
FreeAndNil(FormProgress);
ExlApp.quit ;
ExlApp:=unassigned;
MessageDlg('匯出失敗!'+#13#10+E.Message,mtError,[mbok],0);
end;
end;
if FormProgress<>nil then
FreeAndNil(FormProgress);
end;
uj5u.com熱心網友回復:
Temsheet.quit; //關閉ExcelTemsheet := unassigned;
轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/41294.html
