部分机器环境new Excel::Application执行失败的问题

原因:当前用户访问excel com组件的权限不足。
解决办法:
1、首先确定本机安装了Office的Excel软件(并确认安装版本)。
2、在【开始】—>【运行】中输入:
若为office2003或office2007(即32位程序)输入【comexp.msc -32】,
若为office2010及以上,输入【dcomcnfg.exe】
并回车来启动"组件服务"
3、依次双击【组件服务】–>【计算机】–>【我的电脑】->【DCOM配置】
4、在【DCOM配置】中找到“Microsoft Excel 应用程序”或“Microsoft Excel Application”,选中单击鼠标右键,然后点击“属性”,弹出“Microsoft Excel 应用程序属性”(或“Microsoft Excel Application 属性”)对话框
5、点击【标识】标签,选择【交互式用户】
6、点击【安全】标签,在【启动和激活权限】下点击【自定义】然后点击对应的【编辑】按钮,在弹出的【安全性】对话框中填加当前用户名,并给它赋予“本地启动”和“本地激活”权限,并确定。具体用户名可在控制面板、用户账户、管理用户账户中查看。
7、仍然是【安全】标签下,在【访问权限】下点击【自定义】然后点击对应的【编辑】按钮,添加当前用户名,并赋予“本地访问”权限。 用户名添加后如果不行,可以试着添加INTERACTIVE 、Everyone 用户。其它IIS、网络相关的用户名另外考虑。
8、在【安全】标签下设置完毕【启动和激活权限】、【访问权限】之后,一并设置【配置权限】。这个不一定是必须的,但加上设置应该会更安全点。

参考网页:https://blog.csdn.net/cyj0531/article/details/53423753
注意添加用户名时不需要“NETWORKSERVICE”用户,因为是本地用户启动。

ms的类似问题也可以往权限设置方向考虑。

cpp+qt开发excel读写程序时,并未获得错误信息,查起来费了较多时间,后来是查到底层代码中的com guid,用guid搜索,才找到有效的参考信息。c#开发excel程序时就有较多的错误信息。知道了错误原因,就比较容易找到解决办法了。
安装计算机时,如果要设置域账户等信息,先把账户信息设置好,再装各种软件,奇奇怪怪的问题会少一些。

如果还不行,可以考虑以下方式:
启动 REGEDIT,然后验证对于要自动运行的 Office 应用程序,是否存在下列注册表项和字符串值:
Microsoft Excel 97/2000/2002:
注册表项:HKEY_CLASSES_ROOT/AppID/EXCEL.EXE
AppID:{00020812-0000-0000-C000-000000000046}
如果这些注册表项不存在,则可以通过在系统中运行以下 .reg 文件来创建它们:
REGEDIT4
[HKEY_CLASSES_ROOT/AppID/EXCEL.EXE]
“AppID”="{00020812-0000-0000-C000-000000000046}"

运行excel后,按
Alt+F11 以加载
Microsoft Visual Basic for Applications (VBA) 编辑器。这会强制 VBA 进行初始化。

创建以下两个目录:
For 64 bit make this folder.
C:\Windows\SysWOW64\config\systemprofile\Desktop
For 32 bit make this folder.
C:\Windows\System32\config\systemprofile\Desktop

程序读写会占用excel的com端口,所以要保证调用时这个端口是开放的。execl-》点击文件》选项》弹出excel选项卡》点击管理旁边的下拉菜单,选择com加载项,把foxit pdf阅读器勾掉。最好是卸载foxit pdf阅读器。

你可能感兴趣的:(cpp,com,excel,office)