Share via


Creación y modificación de propiedades de documento personalizadas

Las aplicaciones de Microsoft Office enumeradas anteriormente proporcionan propiedades integradas que se almacenan con los documentos. Además, puede crear y modificar propiedades de documento personalizadas si hay información adicional que desea almacenar con el documento.

Se aplica a: La información de este tema se aplica a proyectos de nivel de documento y proyectos de complementos de VSTO para las siguientes aplicaciones: Excel; Powerpoint; Proyecto; Palabra. Para obtener más información, consulte Características disponibles por aplicación de Office lication y tipo de proyecto.

Use la propiedad CustomDocumentProperties de un documento para trabajar con propiedades personalizadas. Por ejemplo, en un proyecto de nivel de documento para Microsoft Office Excel, use la propiedad CustomDocumentProperties de la clase ThisWorkbook . En un proyecto de complemento de VSTO para Excel, use la propiedad CustomDocumentProperties de un objeto Workbook . Estas propiedades devuelven un objeto DocumentProperties , que es una colección de objetos DocumentProperty . Puede usar la propiedad Item de la colección para recuperar una propiedad determinada, ya sea por nombre o por índice dentro de la colección.

En el ejemplo siguiente se muestra cómo agregar una propiedad personalizada en una personalización de nivel de documento para Excel y asignarle un valor.

Ejemplo

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;
}

Programación sólida

Si se intenta acceder a la propiedad Value para propiedades sin definir, se produce una excepción.