Initially I was using: PHPExcel (https://phpexcel.codeplex.com/) which loaded a given spreadsheet on demand - this was before I though of changing it into a client server model. In a web application context, the response time for anything other than relatively small spreadsheets was simply unacceptable.
I then moved to using Apache POI (https://poi.apache.org/) and used the client server model. This worked quite well but I ran into some problems as some functions had not been implemented yet.
My current thinking is that LibreOffice will continue to improve both in terms of function feature completeness with Microsoft Excel. It may also improve in terms of performance and memory usage.
Any solution that re-implements excel/calc functions, other than LO, most probably has a smaller user/developer base. In my mind, the smaller the projects user/developer base, the more likely active development could slow to a crawl or stop entirely. Not such a great solution for years down the line.
There seems to be at least one tool that can convert macros from Excel to Calc for you: http://www.business-spreadsheets.com/vba2oo.asp
Having done no testing, I have no idea how well this will work.
Also, there seems to be a good resource on specifically LibreOffice macros available here: http://www.debugpoint.com/category/programming/libreoffice
You have complex computations that you want to generatively test, and you can't test for correctness.
Use an LibreOffice Calc Spreadsheet as your 'obviously correct' calculation engine, and test your computations in a format that even your clients will be familiar with.
Sounds crazy, but think more on it. A Spreadsheet is one of the most powerful ways to visualise number crunching, and pretty much everyone knows how to use it. If you have a reliable spreadsheet that accepts input data, and outputs data, you have yourself a testable computation that the client can understand.
Now none of these solutions will be super fast, the overhead of doing the calc in Excel is pretty heavy. I have seen suggested here and suggested it myself that it would be useful to have a tool that reads a spreadsheet and converts the logic between selected input and output cells in code. Then the business could own the logic (in Excel) but it would run with zero overhead on a server.
That's not a trivial thing to do. Excel allows some pretty messy things and users aren't shy about using them. For instance the INDIRECT function allows you to arbitrary refer to any cell, which defeats a statically compiled dependency tree between cells.
[Edit] I think Aspose cells also works in a similar way and has its own calculation engine. Haven't tried it though.
It's not as nice as directly running calculations from a magically scalable and performant spreadsheet black box, but importing data and formulae from various spreadsheets has gotten quite easy.
Closed source, but imagine using the core and expressions support from mathjs  and crossfilter  together to display both raw and calculated data in various contexts, and you wouldn't be too far off the mark.
[edit for grammar]
The main con is the RAM overhead introduced by running LibreOffice instead of splitting the application up into a database and code. For me con this is nullified by the amount of time saved not having to re implement the logic and now, like you mention, the onus is on the team who created the spreadsheet to fix any bugs in their logic.
"By default, the './spreadsheets' directory is polled every 60 seconds for file changes."
What does that mean? Can I edit the spreadsheet manually and the changes will be detected by the server or not?
Currently it simply check for any new spreadsheet(s) in the ./spreadsheets directory and opens them in LO Calc. Any spreadsheet that has been removed will be closed in LO Calc. There currently is not support for what you described. There is potential for that sort of thing to be implemented though...
Would you mind sharing the user flow starting from business folks with their calculations in a spreadsheet?
I'm guessing if I write a front-end spreadsheet like interface, grab their input, have LibreOffice process it, then spit it back out into the interface, it would essentially be my very own spreadsheet program on top of LibreOffice?
I'd really love to learn what's the benefit of making that abstraction because I've been on both sides (business and tech).
I don't quite follow your question but I'll give it a shot. Here is a high level version of how I am currently using the tool: A user is presented with a bunch of input variables on a web page that are then set by the user. These variables are sent to the server and the server sets the relevant cells using spreadsheet_server. Resultant values from other cells are retrieved by spreadsheet_server and then sent back to the web page and presented to the user in the form of a graph or table etc.
Pretty much all of the logic to get from input to output is handled in the spreadsheet by LibreOffice.
Perhaps you knew, but nevertheless, I have to point out: this works with LibreOffice Calc and not MS Excel
Not implying that you don't already know, but this may be of interest in terms of Calc/Excel compatibility: https://wiki.documentfoundation.org/Feature_Comparison:_Libr...
I have used the tool predominantly with xlsx format spreadsheets created in Excel.
Here is the example client: https://github.com/robsco-git/spreadsheet_server/blob/master...