XLLoop is an open source framework for implementing Excel user-defined functions (UDFs) on a centralised server (a function server).
Why is this useful?
Functions can be added quickly and dynamically without users having to restart Excel.
Functions can be managed separately and centrally, which avoids the costly overhead of managing many XLLs and ensures all users are using the same functions.
Data can be shared across excel sessions/users (e.g. current stock market prices can be stored on a single server and all Excel sessions could retrieve this data via a GetStock function).
It has the following features:
Extensible Java server framework.
Native server frameworks written in many other languages (see languages section).
Popup for long running operations (with option to cancel)
Support for hosting C++ XLLs via JXLL.
Reflection-based function adaptor for extremely quick deployment of java methods.
Lisp Function Handler for evaluating Lisp expressions on the fly.
Functions can be dynamically added to Excel without restart.
Functions can be registered as Excel functions (with help information).
Fast binary protocol with multiple-server fail-over/scalability.
JSON over HTTP(S) protocol
NEW: Can be configured to connect to multiple function servers (providers)
XLLoop consists of two main components:
An Excel addin implementation (XLL written in c++).
A server and framework written in java (and in many other languages – see languages section).
The addin and server communicate via a simple socket-based protocol, sending and receiving (binary) serialised excel objects (called xlopers).
In JSON mode the addin and server communicate over http(s), sending and receiving JSON serialised excel objects.
The project is host on [http://xlloop.sourceforge.net]