# Custom Document Properties

It is possible to add one or more CustomDocumentProperty objects to a workbook. These require a unique name (string) and can be one of 6 types:

> - StringProperty

> - IntProperty

> - FloatProperty

> - DateTimeProperty

> - BoolProperty

> - LinkProperty

LinkProperties are always associated with a defined name range.

These properties are globally for a workbook and accessed from the custom_doc_props attribute.

## Sample use

Looping over all the custom properties (“custom_doc_props”):

    >>> for prop in wb.custom_doc_props.props:
    >>>    print(f"{prop.name}: {prop.value}")

Adding a new property:

    from openpyxl.packaging.custom import (
        BoolProperty,
        DateTimeProperty,
        FloatProperty,
        IntProperty,
        LinkProperty,
        StringProperty,
        CustomPropertyList,
    )

    props = CustomePropertyList()
    props.append(StringProperty(name="PropName1", value="Something"))

## Deleting properties

    wb.custom_doc_props.append(StringProperty(name="PropName6", value="Something"))
    # check the property
    prop = wb.custom_doc_props["PropName6"]

    # delete the string property:
    del prop["PropName6"]

    # save the file
    wb.save('outfile.xlsx')

Note

Currently not all possible property types are supported. If openpyxl cannot read a particular type, it will provide a warning and ignore it.