设置例外Excel工作簿的自定义文档属性

我正在开发一个优秀的VSTO插件,在附加组件I中构build一些工作表,以便稍后处理它们。 我想知道如果用户打开和Excel工作簿,如果工作簿与我的加载项结构或不做一些处理。 为此,我尝试使用CustomDocumentProperties。

我面临两个问题:

  • visual studiodebugging器不评估DocumentPropertiesvariables的子项,我不能检查它们。
  • 当我尝试通过调用DocumentProperties.Add创build一个新的DocumentPropertiy时,我得到一个ArgumentException,指出该值不在范围内。

调用函数来构造工作簿:

public void InitWorkbook() { workingBook = Globals.Factory.GetVstoObject(Application.ActiveWorkbook); var dps = (DocumentProperties)workingBook.CustomDocumentProperties; if (!customDocumentPropertyExist("validctcwb", dps)) { // some sheet creation and listobject creation dps.Add("validctcwb", false); } } bool customDocumentPropertyExist(string name, DocumentProperties dps) { foreach (DocumentProperty p in dps) { if (p.Name == name) { return true; } } return false; } 

提前感谢您的宝贵帮助。

我在我的Addin中做同样的事情来生成一个唯一的Id。

 var propertyName = "validctcwb"; var propertyValue = false; var propertyType = MsoDocProperties.msoPropertyTypeBoolean; dps.Add(propertyName, false, propertyType, propertyValue); 

如果您希望在debugging时看到这些值,可以引入以下方法:

 public static IEnumerable<CustomProperty> GetCustomDocumentProperties(Workbook workbook) { foreach (CustomProperty property in workbook.CustomDocumentProperties) { yield return property; } }