我試圖自動化Excel,以便它在服務器上生成報告,然後在請求時通過電子郵件將此報告發送給用戶。我遇到的問題是,一旦我創建了一個excel文檔並將數據寫入其中,程序即使在發出pXL-> Quit()後也不會退出。命令。 這就是我的「關閉」指令擅長:Embarcadero C++構建器Excel自動化C++不會退出
pXL->Workbooks->Close(LCID(LOCALE_USER_DEFAULT));
pXLWSs.Reset(); //Releases Worksheets
pXLWS.Reset();//Releases Workbooks
pXL->Quit();// "Quits" Excel ---> This does not quit excel
pXL.Reset();//Release Excel application?
CoUninitialize();//Uninitialise COMS
我看了好幾篇文章和博客關於這個具體問題,似乎這是因爲我不釋放與Excel相關聯的所有COMS。所以我嘗試了幾次不初始化COMS。我發出了
CoUninitialize();
4次,這工作!但令我感到失望的是,它一直無法工作。
有誰知道如何優雅地關閉Excel?
我知道微軟不支持服務器端Excel自動化,但我希望找到解決辦法。 我也知道,你可以簡單地
WinExec("taskkill /F /IM \"excel.exe\"",0);
其完全殺死的Excel,但我很擔心什麼時候會產生相當數量的Excel應用程序的未來在這種情況下,我會殺了Excel的單獨和它只是從那裏得到凌亂....
任何幫助將不勝感激!
pXL,pXLWSs和PXLWS的數據類型是什麼? – 2012-07-31 15:03:08
此外,請檢查http://stackoverflow.com/q/4852135/25507,看看是否適用於您的情況。 – 2012-07-31 15:07:56
它們是COM接口。 TComInterface PXL; –
dRagonsRage
2012-07-31 15:09:10