請問關於bcb連結excel的釋放問題 |
尚未結案
|
chiehjen
一般會員 發表:8 回覆:4 積分:2 註冊:2003-12-30 發送簡訊給我 |
請問各位前輩,我想利用OLE還有opendialog來開啟excel的檔案,目前已經可以把excel的資料讀入程式的Cells中,但是我發現程式執行完後無法釋放資源,也就是在工作管理員中都還會有EXCEL.EXE,我有去參考之前的文章提到,加入下面兩行就可以釋放。
ex.OleFunction("Quit");
ex = Unassigned;
可是我執行後一樣無效,不知道哪裡出錯,程式下
void __fastcall TForm1::Button1Click(TObject *Sender) { Variant ExcelAp,WorkBooks,Sheets,Sheet,WorkBook,Cell; int i,j; if(OpenDialog1->Execute()) { ExcelAp=CreateOleObject("Excel.Application"); ExcelAp.OlePropertySet("Visible",false); WorkBooks=ExcelAp.OlePropertyGet("WorkBooks"); WorkBook=WorkBooks.OleFunction("Open",OpenDialog1->FileName.c_str()); Sheets = WorkBook.OlePropertyGet("Sheets"); Sheet = Sheets.OlePropertyGet("Item",1); //釋放 ExcelAp.OleFunction("Quit"); ExcelAp= Unassigned; for(i=1;i<8;i ) { for(j=1;j<8;j ) { Cell = Sheet.OlePropertyGet("Cells",j,i); StringGrid1->Cells[i-1][j-1]=Cell.OlePropertyGet("Text"); } } StringGrid1->RowCount=i-1; StringGrid1->ColCount=j-1;發表人 - taishyang 於 2004/01/15 13:26:03 |
terrychen
尊榮會員 發表:90 回覆:794 積分:501 註冊:2003-05-01 發送簡訊給我 |
|
GaryKao99
中階會員 發表:46 回覆:102 積分:54 註冊:2002-08-23 發送簡訊給我 |
引言:似乎是邏輯錯誤 應該將釋放Excel的程式放在你程序結束後,如將該釋放Excel的程式置於Button1Click底 ~~~~~~~~~~~~~~~~~~~~~~ 我什麼都會, 就兩樣不會 就是 這個也不會, 那個也不會void __fastcall TForm1::Button1Click(TObject *Sender) { Variant ExcelAp,WorkBooks,Sheets,Sheet,WorkBook,Cell; int i,j; if(OpenDialog1->Execute()) { ExcelAp=CreateOleObject("Excel.Application"); ExcelAp.OlePropertySet("Visible",false); WorkBooks=ExcelAp.OlePropertyGet("WorkBooks"); WorkBook=WorkBooks.OleFunction("Open",OpenDialog1->FileName.c_str()); Sheets = WorkBook.OlePropertyGet("Sheets"); Sheet = Sheets.OlePropertyGet("Item",1); //釋放 ExcelAp.OleFunction("Quit"); ExcelAp= Unassigned; //在這你已將Excel釋放掉了 for(i=1;i<8;i ) { for(j=1;j<8;j ) { Cell = Sheet.OlePropertyGet("Cells",j,i);//此行用到Excel,但之前以將Excel釋放了....應該會造成錯誤 StringGrid1->Cells[i-1][j-1]=Cell.OlePropertyGet("Text"); } } StringGrid1->RowCount=i-1; StringGrid1->ColCount=j-1; ExcelAp.OleFunction("Quit"); ExcelAp= Unassigned; //試試加在這個地方 } |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |