Besides the interfaces that are dedicated to each of the specific models, there are also optional interfaces that provide additional support and may be used when making custom models. These optional interfaces and the customizations they allow are summarized in this table:
Optional Interface | Customizations Allowed |
---|---|
IArraySupport |
Allows customization of support for getting and setting arrays of values in a range of cells. |
IDataKeySupport, IDataSourceSupport |
Allow customization of data binding on a sheet; used in conjunction with each other. |
IChildModelSupport |
Allows customization of hierarchical data models for hierarchies on a sheet; used in conjunction with IDataSourceSupport. |
ICalculationSupport, ICustomFunctionSupport, ICustomNameSupport, IExpressionSupport, IIterationSupport |
Allow customization of formulas on a sheet. ICustomFunctionSupport, ICustomNameSupport, and IIterationSupport are not useful without IExpressionSupport. |
INonEmptyCells |
Allows customization of non-empty counts to find out which rows or columns have data in the cells of that row or column on a sheet. |
IOptimizedEnumerationSupport |
Allows customization of optimized enumeration for iterating to the next non-empty row or column on a sheet. |
IMovable, IRangeSupport |
Allow customization of moving, inserting, and deleting rows and columns support for a range of cells on a sheet; also covers clear, copy, move, and swap support. |
ISerializeSupport |
Allows customization of XML serialization for the contents of a sheet. |
IUnboundRowSupport |
Allows customization of unbound rows with data binding on a sheet; used in conjunction with IDataSourceSupport. |
None of these optional interfaces are required for saving Excel or text files, or for printing. For more detailed information on these interfaces, refer to the Assembly Reference.