Поделиться через


Создание и изменение настраиваемых свойств документа

Перечисленные выше приложения Microsoft Office предоставляют встроенные свойства, которые хранятся в документах. Кроме того, можно создавать и изменять настраиваемые свойства документа при наличии дополнительных сведений, которые необходимо хранить вместе с документом.

Область применения: сведения в этом разделе относятся к проектам на уровне документа и проектам надстроек VSTO для следующих приложений: Excel; Powerpoint; Проекта; Слово. Дополнительные сведения см. в разделе "Функции", доступные по Приложение Office ликации и типу проекта.

Используйте свойство CustomDocumentProperties документа для работы с пользовательскими свойствами. Например, в проекте уровня документа для Microsoft Office Excel используйте свойство CustomDocumentProperties класса ThisWorkbook . В проекте надстройки VSTO для Excel используйте свойство CustomDocumentProperties объекта Workbook . Эти свойства возвращают объект DocumentProperties , который представляет собой коллекцию объектов DocumentProperty . Для извлечения конкретного свойства по имени или по индексу в коллекции можно использовать свойство Item коллекции.

В следующем примере показано, как добавить пользовательское свойство в настройку уровня документа для Excel и присвоить ему значение.

Пример

void TestProperties()
{
    Microsoft.Office.Core.DocumentProperties properties;
    properties = (Office.DocumentProperties)this.CustomDocumentProperties;

    if (ReadDocumentProperty("Project Name") != null)
    {
        properties["Project Name"].Delete();
    }

    properties.Add("Project Name", false,
        Microsoft.Office.Core.MsoDocProperties.msoPropertyTypeString,
        "White Papers");
}

private string ReadDocumentProperty(string propertyName)
{
    Office.DocumentProperties properties;
    properties = (Office.DocumentProperties)this.CustomDocumentProperties;

    foreach (Office.DocumentProperty prop in properties)
    {
        if (prop.Name == propertyName)
        {
            return prop.Value.ToString();
        }
    }
    return null;
}

Отказоустойчивость

При попытке доступа к свойству Value для неопределенного свойства возникает исключение.