使用名称访问工作表上的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
必需的对象。 对象的名称或索引号。
…因此,由于文档声明该名称是一个有效的关键,我们遇到的行为可能是一个错误。