对 IID 为“{00020970-0000-0000-C000-000000000046}”的接口的 COM 组件调用 QueryInterface 因以下错误而失败: 加载类型库/DLL 时出错

本文解决了在winServer2016环境下Office组件调用失败的问题,包括因Office安装路径不在C盘导致的dll调用错误及doc.Save命令失败的情况,并分享了具体的解决步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上有很多答文,大部分都是因为Office多版本引起的dll调用不明确问题。此类通过删除注册表对应的office版本一般都能解决。

本人遇到的问题,是office2003 没有装在C盘,这也是我因为我向来不喜欢把东西装在C盘引起的。结果注册表搞了一大通,连路径都能记清楚了,还是没解决。后来想着是不是win Server 2016 服务器版本原因,是什么地方还需要进行设置,结果网上根本没有这与服务器版本有关的任何问题。最后才想到了office安装路径问题

这还没完,好不容易不报这个错误了,接着又在 doc.Save的时候,冒出一个命令失败的错误。网上比较公认的做法是,在管理工具 - 组件服务 - 我的电脑 - DOCM配置中,找到 MicroSoft Word,配置其权限。可我找了半天,连MicroSoft Word这一选项都没找到。

后来找到一篇文章:https://www.cnblogs.com/hack1506/p/4059090.html,居然是C盘上某个文件夹不存在:

64位服务器跟32位的区别是:
C:\Windows\SysWOW64\config\systemprofile\Desktop
C:\Windows\System32\config\systemprofile\Desktop

楼主一一对应着找,发现少了Desktop这个文件夹,新建后,没想到真的可以了。此时我对这位博主是感激万分的

最后我想说,Office的组件调用起来简直就是蛋疼,可没办法,老项目中太多导出功能用的是这个,一旦服务器环境变了,可能得折腾好久,就算你第一次环境配过了,时间过久了,下次你就可能忘了。后来我把导出的代码换成NPOI,发现NPOI对word的操作也不是特别方便,尤其是在表格单元格中设置字体、添加段落、控制样式上,显得很吃力

 

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值