【问题标题】:Can not open more than 11 instances of Excel using Excel interop on windows 10无法在 Windows 10 上使用 Excel 互操作打开超过 11 个 Excel 实例
【发布时间】:2016-03-11 14:30:00
【问题描述】:

在 C# 中使用 Excel 互操作,在具有 16GB 内存的 Macbook Pro 上的 Windows 10 下,我无法打开超过 11 个 Excel 实例。在第 11 个实例之后,我在“弹出窗口”中收到以下错误:

“不能使用对象链接和嵌入”

这是我使用的代码:

List<Application> apps = new List<Application>();
for (int i = 0; i < 15; i++)
{
    Application a = new Application();
    apps.Add(a);
}

每个 Excel 进程大约有 15k 内存,与机器上可用的 16GB 内存相差甚远......

我正在使用 .NET Framework 4.5.2、Windows 10、具有 16GB 内存的 macbook pro 和 Excel 个人版。

【问题讨论】:

  • 打开 Excel 实例会消耗 COM 句柄和内存。你可能只是达到了这些限制。顺便说一句,Excel 使用的内存远远超过 15KB。它更像是 15+MB。
  • 我无法在我的机器上重现这个。只是这里的预感......你能看看你的任务管理器,看看有多少 Excel 实例实际运行?
  • @AricLasry - 天哪,你让这一切变得艰难。您为什么要开发需要打开多个实例的软件?
  • 每个人都在这里得到的是......可能有更好的方法来做任何你正在做的事情。如果/当你想出如何破解 11 个实例时,你就会发现其他需要克服的限制,因为看起来你正试图用 错误正确 的事情工具。您也可能在遇到下一个技术限制之前很久就遇到了licencing 限制。
  • 如果您将代码作为服务运行,则根本不应该使用 Excel 互操作。它不适用于非交互式会话。请参阅KB257757,您应该使用Open Xml SDK for Office instead,这是微软发布的用于在服务环境中自动创建 Office 文档的库。

标签: c# excel office-interop com-interop


【解决方案1】:

您是否尝试更改组件服务中的 DCOM 配置:

1:开始->运行并输入“DCOMCNFG”

2:展开组件服务器 > 计算机 > 打开“DCOM 配置”并找到“Microsoft Excel 应用程序”

3:将其身份设置为“启动用户”。

如果您没有在列表中看到 Microsoft Excel 应用程序,那是因为您在 x64 电脑上安装了 x86(32 位)Office。在这种情况下,运行此命令以使用 32 位版本的 DCOM Config:

C:\WINDOWS\SysWOW64>mmc comexp.msc /32

【讨论】:

  • 我在windows上运行...应该是什么文件?
  • 您编辑了您的答案,因此我之前的评论不再相关。我试过了,但“Microsoft Excel 应用程序”没有显示出来……我尝试了很多方法让它显示出来,但没有成功。
  • 查看我的编辑以找到 Microsoft Excel 应用程序
  • 我能够使用 32 位命令并安装 excel 64 位在 dcom 中找到它。设置已经正确,我仍然遇到问题。
猜你喜欢
  • 2018-01-31
  • 2010-10-25
  • 2014-12-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-03-04
  • 2012-05-11
  • 2012-06-09
相关资源
最近更新 更多