The component is fully dynamic, taking advantage of the way data is passed throughout the component. It takes two inputs: a one dimensional array of header information and a two dimensional array of spreadsheet data. The data loaded into the spreadsheet is my own board game collection. It has a lot of functionality including JSON/CSV exports, ‘ctrl+z’ undo shortcut, inline editing and data filters/search.
Once I overcame the initial React learning curve to figure out how props and state are used, this project went relatively quickly. It was also a lot of fun. Next up for this component will be adding a transpiler so I can convert the component to use JSX and ES6.