Earlier quoted context omitted.
The big challenge is implementing the spreadsheet UI.
There's a React component for that. React-datasheet or something like that.
Implementing 70% of the most basic of all functionality of Excel is easy. Implementing 90% is insanely difficulty.
I would say Handsontable reaches the mark of 78%.
I've tried twice, one with React + Mori[0] and one in Cyclejs[1]. In the first I may have reached 82%, in the second probably 85%. But in both cases the latest features I added started to conflict with the oldest ones and I abandoned everything.
[0]: https://github.com/fiatjaf/react-microspreadsheet [1]: http://sheets.alhur.es/