You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Core 3.1 WPF中无法遍历Excel.Shapes的问题求助

问题分析与解决方案

核心原因

.NET Core 3.1中,WPF项目模板默认未引入包含System.Runtime.InteropServices.ComTypes.IEnumerator的依赖程序集,而WinForms模板自动包含了该类所需的COM互操作相关引用——这就是同样的代码在WPF中找不到对应类型、WinForms却能正常运行的根本原因。

解决方法

方法一:安装NuGet包补充依赖

在WPF项目中安装System.Runtime.InteropServices.ComTypes NuGet包,该包包含缺失的IEnumerator类型:

Install-Package System.Runtime.InteropServices.ComTypes

安装完成后重新编译运行,原有的foreach遍历逻辑即可正常工作。

方法二:改用索引遍历绕开枚举器问题

如果不想额外引入NuGet包,可以直接通过索引访问Shapes集合的元素,避免使用foreach依赖的枚举器(注意Excel集合的索引从1开始):

xl.Shapes allShapes = wSheet.Shapes;
for (int i = 1; i <= allShapes.Count; i++)
{
    xl.Shape shape = allShapes[i];
    // 此处添加你的shape处理逻辑
}

内容的提问来源于stack exchange,提问作者Shiva_Adasule

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.18 10:33:12