使用名称访问工作表上的CustomProperties

我试图通过使用属性的名称访问工作表上的自定义属性,但似乎这不支持(至less不是在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; 

我知道一个解决方法只是迭代所有的属性和find正确的一个方法,但我真的想避免任何额外的开销。

有人可以确认这是不是在C#中工作?

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

我已经检查过文档 ,它声明使用键名称作为Item索引器的索引应该是完全合法的 – 从CustomProperties.Item属性的文档中可以看出,下面的索引器是可用的:

 CustomProperty this[ Object Index ] { get; } 

…在下面的文字中,文档指出:

参数

指数

types: System.Object

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

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