VC 调用App.CreateDispatch 提示“创建Excel 服务失败”
先贴上个人写的代码
if (!App.CreateDispatch(_T("Excel.Application"), NULL))
{
AfxMessageBox(_T("创建Excel服务失败!"));
exit(1);
}
出现错误原因: 电脑同时安装了WPS 和 office,导致无法正确调用Excel.Application
解决方法: 卸载干净WPS
以下是解决问题的一些问题和思路:
一、初始化COM库
在创建实例之前初始化com库
if(CoInitialize(NULL) != NULL)
{
AfxMessageBox("初始化COM失败!");
}
但是发现这里我这边并没有初始化失败
二、确认不是安装问题和环境问题
原文链接:https://blog.csdn.net/hzp91/article/details/78048767?spm=1001.2014.3001.5501
参考下面的代码进行判断:
CLSID clsid;
HRESULT hr = CLSIDFromProgID(L"Excel.Application", &clsid);
if(FAILED(hr)) {
::MessageBox(NULL, "CLSIDFromProgID() 函数调用失败!", "错误", 0x10010);
return -1;
}
// 创建实例
IDispatch *pXlApp;
hr = CoCreateInstance(clsid, NULL, CLSCTX_LOCAL_SERVER, IID_IDispatch, (void **)&pXlApp);
if(FAILED(hr)) {
::MessageBox(NULL, "请检查是否已经安装EXCEL!", "错误", 0x10010);
return -2;
}
//用上面代码 替换
//app.CreateDispatch("Excel.Application", e)
原文链接:https://blog.csdn.net/jison924/article/details/8504040
但是尝试加入了上面的问题还是没有解决问题,会进入到提示“请检查是否已经安装EXCEL!”,但是我在前面已经安装了office2021,并且也是成功激活了office了的
注册表
后面看到了一篇文发现和自己类似的情况,同时安装了WPS 和 office,尝试各种方法都不成功,跟着教程修改了Microsoft Excel Application的属性路径
修改Microsoft Excel Application属性路径原文链接
https://blog.csdn.net/l490134872/article/details/80250395?spm=1001.2014.3001.5506
但是修改了之后马上又恢复了原来的路径,后面看到评论区有类似的情况,博主回复说是"可能是WPS更新时又给覆盖了", 后面尝试卸载了WPS,至此终于没有报错了