A spreadsheet editing app build using Reactjs.
- Editing cells.
- Applying styles to cells.
- Bold.
- Italic.
- Underline.
- Alignment (left, center, right)
- Font Family.
- Font Size.
- Color.
- Background Color.
- Creating and Editing multiple sheets.
- Formula Evaluation.
- Convert sheets to csv.
- Converting from csv to app sheets.
- Copy & Pasting of cells including their styles.
- Optimization:
- A lot of optimizations were made to how each component should render so as to avoid re rendering of complete app whenever a single cell is being edited.
- Multiple changes were made to how the state was being stored so as to make the optimizations.
- React.memo was used to make sure re rendering is done properly and when required.
- CSS:
- Flexbox is used heavily.
- Some tricks involving opacity set to 0, to hide a component but make sure it's clickable etc were used to display icons for color changing.