Hacker News .hnnew | past | comments | ask | show | jobs | submit | vba's commentslogin

This was a nice surprise to see today as an Ex-Excel developer who worked on trying to bring Python to Excel (and, I guess, failing ;)).

7+ years ago I had the option of leaving the Excel team. My then boss’s boss knew I had an interest in bringing Python to Excel and offered me a chance to tackle it if I chose to stay. What was meant to be a 6 month project turned into a ~3 year project, the Python part faded away and we ended up enabling JavaScript Custom Functions in Excel instead.

For Python we were also running ‘in the cloud’ (AzureML v1), although there was some back-and-forth on if we should run locally. I think what made the Python part disappear was our partner AzureML team re-orged, re-released, re-hired, we lost a PM and our work caught the attention of another partner team who realised they could use our code to execute their JavaScript out-of-process. And so I spent a lot of time ensuring that feature was successfully shipped at, I guess, the detriment of Python.

I had a lot of help from some strong engineers and learnt a lot. The core of the work was modifying the calculation engine of Excel to allow functions to compute asynchronously, allowing the user to continue working on other parts of their spreadsheet while the remote endpoint (be it JavaScript, Python or something else) was computing. Previously the spreadsheet would lock up while calculations were running, and that wouldn’t be cool for long-running unbounded calculations. Have to wonder if any of the stuff we built made it into this new feature.

Super great to see this and look forward to trying it out.

Recalc or die


Thanks for your work! The async JS functions are amazing and allowed me to ship rock-solid Custom functions with xlwings and Python. The problem with Office.js is that it’s just simply too hard to get started with all the npm bloat for the average Excel user (even more professional devs struggle). Well, I am pretty happy how I am saving users from having to use Node.js: https://docs.xlwings.org/en/latest/pro/server/officejs_custo...


Oh this must be Felix! I saw and played with xlwings many years ago and was impressed :)

Agreed with the friction around getting started. I would like to see it reduced. It’s cool to see you using them to wrap Python functions - I have done something similar before myself, and still need to get around to shimming Haskell into excel at some point.

Another thing I don’t like is how JavaScript Custom Function cell formulas have a horrible string after the _xldudf marker, which becomes noticeable if your workbook doesn’t/can’t load the custom functions addin (or you unload the addin)

Thanks for your comment


It's me, yes, are you Michael then ;)? Yeah, I love the Office.js platform, I believe it's the most versatile extension platform there is, it just came out during an unfortunate time (when people believed that you can't use JS without React anymore ;) Anyhow, the magic of Office.js is that you can use it like a JS framework with total freedom what you use on the backend (it's just a fetch call away), so whether that is .NET or Node or Python/R/Julia doesn't matter at all, it's just that the official docs don't really bother to explain that or show an example other than Node & C#. What's a game changer (and only available on Office.js) is the integrated authentication via SSO/Azure AD, which is the first thing any IT department in a corporation is interested in.


I’m not Michael - presuming you are referring to Michael the PM. I was a dev. I’ll add you on LinkedIn.

Great to here you praise auth. I almost forgot getting auth ‘right’ inside Excel was a real time burglar.


> The problem with Office.js is that it’s just simply too hard to get started with all the npm bloat for the average Excel user (even more professional devs struggle)

IMO deployment is an even harder problem. The Office team makes it incredibly difficult to deploy web add-ins (presumably for business reasons) and accordingly most companies I'm familiar with are still using the ancient, barely-supported COM+VSTO add-in models.


Which part do you find difficult? The web backend or the deployment of the Manifest.xml via the app store / office admin?


The part that makes it a non-starter is that it has to be in some kind of a store (whether it's on prem via SharePoint) or the Internet. What is needed is that you can install something on the user's computer (xcopy install, msi, w/e), but without requiring any other Microsoft end-point. And then, the bits installed either run completely on-node (similar to COM/VSTO) or it would require that access to remote web-server be required. If a remote web-server is required (which is a bit of a limitation), it should be something that can be pointed to without Microsoft's involvement. Just like I can create a web-site, give you a URL to it, and you can go it using your WebBrowser. No app-stores.

That doesn't mean app-store shouldn't be an option. I would love to also publish my add-in in the Microsoft AppStore, but it should be my choice, not a hard-requirement.

That's why people are still using VSTO, not because we have a problem with JavaScript vs. C# or COM.


Totally agree on the part of the add-in: Just give us a dead-simple method to load the manifest locally and be done with it!


The app store / Office admin stuff. When I was dealing with this stuff 2 years ago, it was insanely difficult to deploy a web add-in internally (something involving the "Microsoft 365 admin center"), let alone deploy it to customers (gotta get approval to deploy it in the special Office app store, and hope+pray that your customers' IT departments don't block that).

Compare to VSTO, where IIRC installation just involves editing a registry value to let Office know where your add-in can be found on disk.


You just reminded me I tried to make an office addin a few years back and distribute it on the office store. Terrible experience trying to get Microsoft’s admin/business center (whatever it is/was called) to verify I was actually a real human/owner of the domain as a sole proprietor. Terrible.


This is so weird. I built a working "python within excel" a few years back. (it also did sql and matlab&r remotely)

Abandoned now: https://alphawolfxl.com/

I abandoned this when some people I asked to beta test it said "their company wouldn't pay for it" and gave me the impression I'd wasted my time....

....Not sure how to feel about this.....


Don’t feel too bad because if you would have created a product from it, today this product would be deprecated..


I don't think that's necessarily true. They built VSTO for C#, but everybody was using ExcelDNA instead, an Open Source solution that was much better!


By chance I built quite an interesting addin for excel using VSTO. It was great, nothing to complain about. In the corporate world Microsoft tech is widely common.


You were just ahead of your time!


Do you know why Microsoft never made proper examples of the new technology? The few examples provided are for programmers only.

In general there is a scarcity of working code that you can inspect to see how javascript in Excel works.

Now it is mostly "how to draw an owl"


I don’t unfortunately. Given the more technical nature of the feature I’m inclined to agree Microsoft should make a bountiful supply of working examples.


Glad I am not the only one with this impression :)


Thanks for your work on that! I use custom JavaScript functions to hit our internal analytics API. It was really nice to work with.


Thanks for your kind words. Did you ever use streaming function to update your analytics periodically or when new data become available?


That's really an interesting story; thanks for sharing it.


Great user name.

I have a private github repo called NVBC, the "NecroVisualBasiCon", with all of my favorite VBA-isms.

When I code it, I indent all of the `End *` lines to column 80, to make the VBA look more like python.


Appropriate username


An aside - I wanted the username xl but someone registered it the day before (the day before!) me on hn.


> the Python part faded away and we ended up enabling JavaScript Custom Functions in Excel instead.

Nobody could have anticipated that GPT4 would author Python better than anything else.

Nonetheless, I kind of just want Google Drive except Excel, without adopting anything more than the Office ecosystem, that just works with simultaneous editing.


Air quality is something I've been thinking about more and more. I'm currently mostly in Bangkok and now I check the air quality (aqair) before I exercise outdoors, and often end up skipping. Though I haven't looked into it deeply, I'd love to see some trustworthy conclusions about how I'm affecting my future health by living in Bangkok. I've really come to miss the Pacific Northwest partly because of the clean air (except, of course, during the wildfire seasons)

I'm building a house in Bangkok and up in Chiang Mai of all places (see the company is from there) and was thinking of adding some air quality sensors there so will definitely check airgradient's out.

If I may ask Achim, do you manufacture in Thailand? What kind of scale you at? No promises, but I have access to some decent sized factories and given your mission, there might be something we can help with.


Recall Christmas Day eating some sweets (which I didn’t like) and playing this (which I did like). I got this for my 6th (?) Christmas. Most memorable things for me were demonstration of gears (using mammoths) and the guy who would pop up if you went AFK.

Also dorling kindersly’s eyewitness soundtrack deserves a special mention.


Yup combined Christmas and birthday presents and additionally forfeit any money I received from relatives back in the year 2000. Had to fight for it and made to feel guilty on how much it cost.

Didn’t become a robotics engineer.


I also worked on Excel and in the calc code. XOpers, LBLs… it’s all coming back. We never figured out what the Hungarian prefixes kml and ptg stood for. There was a rumor kml might be the initials of duanec’s girlfriend

Recalc or die



I have heard it call that before by teammates but thought it was just a guess. Seems it’s official

Thanks for sharing :)


Why is this post downvoted? Is it inaccurate.


Yes, it is inaccurate to the point of being the reverse.

Muscles are controlled through the software, with pattern of activation uploaded from an iPad via Bluetooth and generally managed by am accompanying person. The patients absolutely do NOT control the muscles with their brain.


So basically it's just a DAC + amplifier, not an ADC or with any kind of passthrough.


It's best not to speculate too much on voting. Who knows how many bots and trolls there are?


Outside of the car, will this allow residential EVSEs (the ‘charger’ on the side of your house/garage) to become a lot smaller?


A quick intro into EVSE and why there is no power 'charger' in them, and the space they take is just empty air https://www.youtube.com/watch?v=RMxB7zA-e4Y


TL;DW the equipment is empty as it is just like a fancy light switch, an ardiuno hack could replace it, it's all the car's job to negotiate the power it needs. The cost is in the installation.


Why do they need to be smaller? The Tesla EVSE is about the size of a loaf of bread. And I doubt it needs SiC because it's just a smart relay for 240v anyway; it's not switching power at high frequencies or getting hot.


As others said, conventional EVSEs are just spiced-up power switches, so there's not much to gain from SiC. It does however open up a pathway to smaller / cheaper / more efficient residential DC fast chargers which can also enable a widespread rollout of V2G.


There's no power conversion in an EVSE, it's just an RCD and a contactor.


What year was this out of interest?


I think 2002 or 3. I worked there from 2001 to about 2010 and it was pretty early in my time there.


Appreciate the effort


I was wondering where she is now - her LinkedIn says Amazon. Looks like she went back into academia before that. Wonder if she worked on any more projects like this during her 2nd stint at university.


Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: