3

我正在尝试使用属性名称访问工作表上的自定义属性,但似乎不支持此功能(至少在 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;

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

4

1 回答 1

3

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

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

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

CustomProperty this[
    Object Index
] { get; }

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

参数

指数

类型:System.Object

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

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

于 2013-02-06T21:20:20.967 回答