VC 调用App.CreateDispatch 提示“创建Excel 服务失败”

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失败!");
}

但是发现这里我这边并没有初始化失败

二、确认不是安装问题和环境问题

VC 调用App.CreateDispatch 提示“创建Excel 服务失败”_第1张图片
原文链接: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,至此终于没有报错了

你可能感兴趣的:(excel,c++,vc-1,开发语言)