表上访问CustomProperties来与名称(Accessing CustomPropertie

2019-07-19 07:29发布

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

我知道,一个解决方法是只是一些方法在所有属性进行迭代,并找到正确的一个,但我真的想避免任何额外的开销。

Answer 1:

有人可以证实,这是不是在C#的工作?

只是试图与Office 2013预览和互操作性API的15版本,我可以证实,这并不在C#中工作(抛出一个COMException与“类型不匹配”的消息)。

我检查了文件 ,其中规定,它应该是完全合法的使用主要名称作为指数为Item索引-从文档的CustomProperties.Item属性,指出下列索引可用:

CustomProperty this[
    Object Index
] { get; }

...并在下面的文本,该文件规定:

参数

指数

类型: System.Object

所需的对象。 的名称或索引编号的对象的。

......如此以来,文档指出名称是有效的关键,我们遇到的行为可能会是一个错误。



文章来源: Accessing CustomProperties on Worksheet with Name