Excel Addin to connect your favorite programming language with your Excel sheets
The Opuxl Excel Addin allows you to connect your application with Excel. You define your functions in your favorite programming language (Java, Node, ...) and the Opuxl Addin will discover and can call those functions from within your Excel Sheet.
We had trouble to fill in multiple cells via a single function by using XLLoop, so we created our own addin which uses ExcelDNA to manipulate the Excel sheet.
With the addin it is possible to connect your Excel sheets to your desktop or server applications.
When you start your Excel with the plugin activated, it will try to create a socket connection to 127.0.0.1:61379 and send a "Initialize" request to fetch all available methods. The response will contain the methods and they will be registered in the Excel Sheet. A method invocation will trigger a stateless request/response connection between the Addin and the "Socket Server".
Check out the Java Demo which creates a Server Socket and published methods which have a specific annotation. The result of a Opuxl Function should always be a OpuxlMatrix. In the OpuxlMatrix you can specify matrix headers and the matrix data (list of lists => list of rows).
Java Part with Eclipse
- Import "demos/java" as a Maven Project
- Project -> Maven -> Update Project
- Run the DemoServer (this will publish all methods of the DemoMethods Class which are annotated with @OpuxlMethod)
Now the Socket Server is running and we have to start an Excel with an installed addin.
Debug mode with Visual Studio Community 2015
- Import "opuxl_addin/Opuxl" as a Solution
- Install NuGet Packages on both Projects
- OpuxlClassLibrary Project -> Properties -> Debug ...Set 'Start External Program' to your EXCEL.exe file ...Add a 'Commandline Argument' to your xll file (eg "C:\Users\foo\Documents\Visual Studio 2015\Projects\Opuxl\OpuxlClassLibrary\bin\Debug\Opuxl.xll")
- Start the Project in 'debug' mode
- Execute your functions defined in your java demo server ...they are prefixed with "Opus." in this demo build, eg: =Opus.GetNames()
You can find further information inside the OpuxlClassLibrary Project folder: opuxl_addin/Opuxl/OpuxlClassLibrary
Excellent! You can help us by just creating an Issue or submiting a Pull Request. Your help would be appreciated.