Architecture

All computations in the Excel applications are performed on the java server xlloop-finance.jar file and then the results are transferred and displayed in Excel. The calls to the server are performed using functions that are registered in Excel and can be used in exactly the same way as any standard Excel function. The xlloop addin registeres all server functions in Excel including the function (i) category; (ii) name; (iii) description (help); and arguments description (arg help). The information can be accessed in Excel using Formulas> Insert Function menu option. An illustration of Excel function help window is illustrated below (the example illustrates how to create a java list object from an Excel data range).



In terms of Model-View-Controller (MVC) architecture, a typical design of an application is described as follows. Shematically the MVC architecture is illustrated in the diagram below.



To summarize, under the architecture Excel is integrated directly with java. From my experience, the approach produces very user-friendly applications and for that reason I am using as a default option for any new developped application. However the design is not necessarily the best option for each case. Other options are also available.

Originally java applications in this project had java interface. To make java inteface coding a more efficient process, a direct coding was replaced with a framework, which is described in more detail in [link]. The framework (i) uses Spring factory classes to assemble application interface; (ii) uses xml configuaration files to describe interface elements (since xml syntaxis is still sufficiently complex and redundant, a simplified syntaxis was also developped for interface configuration files); (iii) uses a custom application-building framework to link different application components and application actions together efficiently. Java server application, which is part of XLLOOP model, was implemented using the above framework.

Java interface however is generally requires too complex programming to construct efficiently a user-friendly application. The next step in the project evolution was to run the project in java and then save all selected tables into an Excel file. The integration with Excel is performed using docx4j package ( https://www.docx4java.org). The output can be written in macros-enabled Excel files so that Excel is effectively used as an interface. The disadvantage of this approach compared to the current approach is that Excel has to be restarted each time when the parameters of the application are updated. Current architecture provides a more seamless integration between the model and the interface.

The applications are build on certain java frameworks. Therefore the project can be beneficial not only for those interested in using the specific applications from this website but also for thoise who want to leverage from the source code and integrate it in their own projects.