【问题标题】:Can't access SlideMasterPart in PowerPoint using OpenXml无法使用 OpenXml 在 PowerPoint 中访问 SlideMasterPart
【发布时间】:2014-01-07 16:22:09
【问题描述】:

我正在尝试使用 this OpenXml tutorial 即时创建一个 pptx 文件。

我收到错误:

“System.Collections.Generic.IEnumerable”不包含“First”的定义,并且找不到接受“System.Collections.Generic.IEnumerable”类型的第一个参数的扩展方法“First”(您是否缺少using 指令还是程序集引用?)

在下面一行:

var slideMasterPart = presentationPart.SlideMasterParts.First();

有解决办法吗?

【问题讨论】:

  • 您是否缺少此命名空间 DocumentFormat.OpenXml.Packaging ?
  • 不,我有那个。 OpenXml、打包和演示。
  • 您是否缺少 using System.Linq; 或对 System.Xml.Linq 的引用
  • @AquilaSands 做到了!不知道如何添加对 System.Linq 的引用来修复它。有什么解释吗?随意添加它作为答案,我会接受。

标签: c# powerpoint openxml


【解决方案1】:

添加对using System.Linq;的引用

作为解释,First() 方法是一个扩展方法,它位于 System.Linq 命名空间中,适用于从 IEnumerable 继承的任何东西。有关详细信息,请参阅 MSDN 文档 Enumerable.First MethodSystem.Linq Namespace

【讨论】:

    【解决方案2】:

    您需要输入将返回的类型名称:

    var slideMasterPart = presentationPart.SlideMasterParts.First<**NameOfType**>();
    

    干杯-

    【讨论】:

    • 感谢您的回答,但它根本无法识别First
    • 该错误暗示 SlideMasterParts 是通用的 IEnumerable(即某些 T 的 IEnumerable)。通用 IEnumerables 确实有一个 First 方法。如果不是泛型 IEnumerable,那么它是什么类型?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-10-04
    • 2014-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多