If you are still looking to replace Handsontable then AG Grid community edition is free, open sourced and MIT Licensed. The AG Grid commercial Enterprise edition has more advanced features and support.
Thanks. We recently added a blog post and updated the documentation to help developers understand our module/package approach to reduce bundle size https://blog.ag-grid.com/minimising-bundle-size/
I had the chance to sit down with Kerry McKeever and discuss his Cypress Plugin which Automates AG Grid. We recorded the discussion and demo of the plugin. Kerry McKeever explained and demonstrated his AG Grid automation plugin for Cypress, showing where to find the code and how to create custom commands for cypress.
I used React Testing Library for the first time and blogged about it for AG Grid.
I used more querySelector and querySelectorAll, than the Testing Library documentation suggests because when working with a 3rd Part component I don't have access to add data-testid attributes.
My previous experience with WebDriver helped because I was able to write CSS selectors fairly easily and add synchronisation code to handle the asynchronous nature of the grid rendering.
I only have a few tests so I haven't really attempted to make the abstraction layers complete or very isolated, but if I added more automated execution code then I would refactor the abstraction layers into something more manageable.
I wanted to improve my JavaScript programming, and learn AG Grid at the same time so I tried to think of an application which had a data grid front and center, but met needs that I had. So I built a Markdown table code generator.
I've always hated building tables for Markdown so this was helpful in intial prototype stage.
I added CSV because AG Grid has an exportDataAsCSV function so it was a 'no cost' feature.
The parsing code for importing the various formats is pretty minimal so there will be many edge cases that don't work.
Because everything is based around the same data structures internally adding new import and export formats was fairly simple.
I haven't added any tests yet because I was incrementally building it and learning to structure JavaScript at the same time.
It is pure JavaScript with no frameworks, simply because I'm concentrating on learning JavaScript at the moment and there is no build system.
Looking at the code now, after a 4 month gap I can see that I didn't even know about JavaScript modules and imports at the time I started so the code is just added directly into the main index through a script element include.
It isn't the most robust application but it was an interesting starting point.
My end goal with it was to add data generation capabilities, and have it all run in the browser, but I haven't got to that point yet. My plan is to try to do this by adding a 'type' to each column and then using Faker to generate the data https://github.com/marak/Faker.js/
Thought it might be useful if anyone is learning JavaScript and wants to see a simple application.