XLL+ Class Library (6.3)

Extensibility

XLL+ 6 offers a variety of new extensibility features to make the code generated by the XLL+ tools fit ever more closely with your existing code-base.

Extended types

XLL+ has always been able to transform Excel inputs to standard C and C++ types, such as double, int, std::string etc.

With XLL+ 6, we have introduced extended types, which let you specify your own value types, such as date classes, currency codes or enumerated values, and have them appear in the Function Wizard along with the standard built-in types.

The Function Wizard generates all the code necessary to transform the Excel inputs to the extended type, as well as validating the input and generating appropriate error messages if input validation fails.

See Extended types in the User Guide for more on extended types.

Function extensions

With XLL+ 6, you can author your own function extensions, which will be inserted into the generated code for a function by the XLL+ Function Wizard whenever you select them.

Typical uses of function extensions include:

See Function extensions in the User Guide for more information.

We have also used function extensions and extended types together to provide a new and almost code-free mechanism for object handles. See Object handles in the User Guide for more about this mechanism.

Container classes

Earlier versions of XLL+ offered limited container support. 1-dimensional inputs were placed into std::vector, and 2-dimensional inputs were delivered to ple::imtx matrix classes.

With XLL+ version 6, you can specify the container type for any or all of your vector and matrix inputs. So if you are writing XLL add-ins which call libraries of existing functions, you can deliver the Excel inputs directly into the container type expected by the libraries.

To illustrate this technique, we have provided a sample showing how to use the boost::multi_array class as a target matrix container.