我正在尝试自动化 Excel,以便它在服务器上生成报告,然后在请求时通过电子邮件将其发送给用户。我遇到的问题是,一旦我创建了一个 excel 文档并将数据写入其中,即使发出 pXL->Quit(); 程序也不会退出;命令。这就是我“关闭”excel的说明:
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,这一切都会从那里变得一团糟......
任何帮助将非常感激!