调用Excel 的Excel.Application失败的问题分析

Excel提供了对外的API调用,可以用来实例化一个excel的instance,具体的调用方法是:

#define EXCEL_APPLICATION_NAME		_T("Excel.Application")
……
Excel::_ApplicationPtr xlAppPtr;  //指向excel的instance的指针
Excel::_WorkbookPtr bookPtr;  //指向一个workbook的指针
RESULT hr = S_OK;
try
{
    hr = xlAppPtr.CreateInstance(EXCEL_APPLICATION_NAME);  //实例化一个excel的instance
		
    xlAppPtr->Visible = false;
	xlAppPtr->UserControl = true;
	xlAppPtr->DisplayAlerts = false;

	bookPtr = xlAppPtr->Workbooks->Open(name.c_str());  //打开某个excel文件
    ……
}

其中如果Excel.Application这个组件在注册表中没有正确注册的话,在打开的时候会找不到具体的执行文件,报一个"REGDB_E_CLASSNOTREG Class not registered"错误。

这时候可以去regedit里面查询Excel.Application这个节点的配置是否正确

regedit中,节点的路径:Computer\HKEY_CLASSES_ROOT\WOW6432Node\CLSID

打开这个节点的配置之后,找到其中的“LocalServer32”, 可以发现配置如下:

由图可以发现,“LocalServer32”的值为"C:\Program Files\Microsoft Office\Root\Office16\EXCEL111.EXE" /automation 

但是去C:\Program Files\Microsoft Office\Root\Office16路径下没有找到EXCEL111.EXE,只有EXCEL.EXE,所以把“LocalServer32”的值改为"C:\Program Files\Microsoft Office\Root\Office16\EXCEL.EXE" /automation ,保存之后生效,至此问题解决

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值