This toolkit contains tools, a runtime library, samples and documentation to help with the development of COM modules and .NET assemblies that wrap Excel XLL add-ins. The add-in functions in the library are available as COM and .NET methods to client programs that use the wrapper modules.
The wrapper objects can be used by clients written in any development environment that supports COM or .NET, including C++, Java, C#, Visual Basic and VBA.
Each add-in library is wrapped in a single class, which has one public method for each add-in function. For example, an XLL add-in named MatrixTools.xll, containing 3 methods, might produce a .NET class such as:
class MatrixTools { public bool MatrixIsSkewSymmetric(double[,] M); public double[,] LUDecomposition(double[,] A, double[,] L, double[,] U); public double EuroDateDiff(DateTime Start, DateTime End); }
The wrapped methods can have strongly-typed signatures that are more precise than the Excel add-in functions that they wrap. In the examples above:
- Inputs can be dates - rather than just the numbers used in Excel.
- Return types can be specified.
- Where an add-in function might return "#VALUE!" for an error, the wrapper function can instead throw an exception.