Python + xlwings: most successful (relatively speaking) to build custom finance functions in my line of work. Downside is the slowness and deploying on other computers.
Rust + xladd: really enjoyed this but feels immature still. Better performance than python and easier to distribute as single dll.
VBA: options above make this almost obsolete, however can’t beat being embedded.
For the "task pane", if you need one, you can use React or Angular, but I prefer to use Vue (or no front-end framework is fine too).
For the backend logic, just straight up Node + webpack. You could probably do this better with Vite, but I think Microsoft's starter templates all use webpack.
You end up distributing a manifest file that tells Excel which server your assets and API live at.
Warning: hot reload and dev debugging is quite a pain on macOS.
Number one function used. Export to Excel, and normally it is on reports of basic table join queries, none of the advanced things it can do with the data
Turns out lots of people have decided what the conclusion is and are taking that conclusion and the data, and then blindly munging until they get a path which connects them.
But that's a lot of work so businesses don't want to pay for it.
Business data is full of minor inconsistencies which are not obvious until you sit in front of it. Products are sold by different units. Reporting ranges and aggregates are slightly different. Subsidiaries use categories which are close but not exactly identical.
There is generally plenty of massaging to do before you can get the information you need.
AWS is pushing this message on every NFL broadcast with their Next Gen Stats ads. "The data tells us all"
Of course you want to be intellectually honest about it, and I agree that cherry-picking the "right" data can be a big problem in the wrong kind of organization. I remember one time a Jr analyst I managed was asked by the CEO to create a certain chart. I was not looped in. The CEO then used that chart to convince himself and many others on the executive team to make a huge product change that ended up being a complete disaster.
Often, this is learning for me. I have a bunch of Stephen Few’s books and use exported CSV files to figure out which reports are useful to me and my org. When I find them, I do make a request for standardized reporting. These often become the basis for regular review meetings. In those meetings, we still come up with instances where we need to export to CSV and get into the data to understand what we are looking at.
Our work is going through a big shift this year that means our historic data is not helpful in predicting trends. That’s increased the need for this kind of engagement with the underlying data.
Silverlight had positive sounding blog posts, etc... right up until its official death.
These megacorps never officially announce a product's demise, not while they can sell it. You have to read between the lines.
It got a little too big and I rewrote it as a C# desktop application talking to a SQL Server, but it was impressive what this person was able to create with no real programming knowledge and just Microsoft Access.
A lot of comments on HN display disrespect for people using tools like Excel and Access instead of 'doing things properly'.
You acknowledge that the person who built what you replaced was working under constraints and created a system that ran a 50-person company.
Which gains did you or the users get when rewriting to C#? What were the downsides?
The gains were performance. The MS Access application was not backed by a proper database, I forget the exact setup but it was more of just a shared MDB file over the network? Whatever Access was capable of at the time. There were contention/locking issues and all the other sorts of problems you'd expect given the setup. My memory of it is a bit hazy, but I know it was lacking a true database outside of its own MDB format.
Funny story, after the rewrite the software was so succesful internally that we decided to start selling it, and it became one of the industry leaders. The person who wrote it originally was highly knowledgable in their field, and I happened to have decent enough programming knowledge. The two put together ended up with something special.
The execution sucked because Access is/was a terrible database. Poor data integrity, really low limits on the DB size, etc.
I think if Access was as good as SQLlite, it would have really taken off.
Because the salespeople didn't know how to use or sell it yet, I got to be the one to travel to our first customer and train them on it. After showing their CFO how to add our formulas to a couple of cells, make a chart from it, and then hit Shift+F9 to refresh the formulas and get current data from their AS/400, he pushed me away from the keyboard and quickly entered several more formulas to bring in additional data. And then told me I had just saved him three day's work every month when he created charts for his reports to the board.
I eventually left the company, and they got bought a couple of times by ever-bigger software companies. But the product is still out there and is very versatile, having been extended to talk to many different ERP & accounting systems. It even still has the same product name: Spreadsheet Server.
I was forced into doing this because after a year of digging to find out what reporting they wanted in the dashboard (“oh a thousand things… where’s the Excel spreadsheet export button?”), I gave up and now default to giving them all reporting via Excel, using these custom formulas.