【问题标题】:Accessing CustomProperties on Worksheet with Name使用名称访问工作表上的 CustomProperties
【发布时间】:2013-02-05 17:14:31
【问题描述】:

我正在尝试通过使用属性名称来访问工作表上的自定义属性,但似乎不支持(至少在 C# 中不支持,我看到其他人报告说它在 VB 中有效,文档也说所以)。有人可以确认这在 C# 中不起作用吗?这是示例代码:

activeWorkSheet.CustomProperties.Add("Test", 123);
// Accessing by index works, but by name it doesn't. 
// The documentation says access by name should be possible
var works = activeWorkSheet.CustomProperties.Item[1].Value;
var doenstWork = activeWorkSheet.CustomProperties.Item["Test"].Value;

我知道解决方法只是一种遍历所有属性并找到正确属性的方法,但我真的很想避免任何额外的开销。

【问题讨论】:

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


    【解决方案1】:

    有人可以确认这在 C# 中不起作用吗?

    刚刚尝试使用 Office 2013 预览版和版本 15 的 Interop API,我可以确认这在 C# 中不起作用(抛出带有“类型不匹配”消息的 COMException)。

    我检查了documentation,它指出使用键名作为Item 索引器的索引应该是完全合法的-来自CustomProperties.Item 属性的文档,它指出以下索引器是可用:

    CustomProperty this[
        Object Index
    ] { get; }
    

    ...在以下文本中,文档指出:

    参数

    索引

    输入:System.Object

    必需的对象。对象的名称或索引号。

    ...因此,由于文档声明该名称是有效的密钥,因此我们遇到的行为可能是一个错误。

    【讨论】:

    • 是的,确实很奇怪。谢谢你的测试,我想也许我用错了。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多