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.