appsmithorg / appsmith

Platform to build admin panels, internal tools, and dashboards. Integrates with 25+ databases and any API.
https://www.appsmith.com
Apache License 2.0
34.67k stars 3.75k forks source link

[Feature] Datagrid widget #1392

Open areyabhishek opened 4 years ago

areyabhishek commented 4 years ago

Summary

A data grid widget will enable users to create an editable spreadsheet view of their database.

Motivation

Advanced users will use this to quickly edit multiple cells.

Additional Context

We could use ag grid or other open source libraries.

Some OSS libraries:

  1. https://github.com/githubocto/flat-ui
  2. https://github.com/glideapps/glide-data-grid
alex-jitbit commented 3 years ago

Yeah, that would awesome, something similar to this: https://docs.retool.com/docs/working-with-tables#editing-table-values-making-data-editable

mingfang commented 3 years ago

Something with "formula" support would be amazing. Luckysheet https://github.com/mengshukeji/Luckysheet tries to be Excel like which is great already. But I think appsmith can go a step further to support calling javascript as a formula.

Nikhil-Nandagopal commented 3 years ago

@mingfang thank you for the suggestion!

riodeuno commented 3 years ago

Reference to a library we can use for this widget, referred by a community member on discord

https://github.com/SheetJS/sheetjs

marcius commented 3 years ago

This could be a nice candidate for the datagrid widget: https://revolist.github.io/revogrid/

mingfang commented 3 years ago

If would be great if Appsmith can be used build something that works like seektable https://www.seektable.com

momcilo-appsmith commented 2 years ago

@riodeuno @somangshu Can we schedule a discussion around this widget?

kavhad commented 2 years ago

Many companies in the financial sector OR else where who maintain and input a large amount of data would view this feature as essential.

somangshu commented 2 years ago

@kavhad thanks for the additional context 👍 We are yet to prioritise this and bring it up on our roadmap, Right now we are focusing more to improve our table widget to handle large amounts of data.

We will post back here once we have decided to take this forward.

kavhad commented 2 years ago

Hi @somangshu, sounds promisin. Can you share anything about how you're going to improve the existing table widget for the mentioned purpose?

somangshu commented 2 years ago

Sure @kavhad, as of now you can track it in #9135. This is our first set of goal before we can move ahead. There are more enhancements in the pipeline. Let us know if you wish to checkout the dev version, we will be more than happy to have your feedback.

Cc @dilippitchika

dilippitchika commented 2 years ago

Hey @kavhad would you be willing to help us understand how this can helpful for the financial sector specifically? If you are, would you be able to jump on a call with us and walk through financial use-cases?

Adding a link to book a slot which is convenient for you - https://calendly.com/dilip_pitchika/30min?back=1&month=2022-05

Do let me know if this doesn't work out, i will figure out another way to get in touch with you.

yan-hic commented 1 year ago

@Nikhil-Nandagopal this was raised for quite some time and last prioritized for Q4 22 I read. Can you update us on progress + direction ? I.e. new widget, enhanced Table widget or use of compatible external library ?

Nikhil-Nandagopal commented 1 year ago

@yan-hic we de-prioritised this in favour of making the table widget inline editable. It works slightly different to a datagrid but it seemed to solve most use cases. Have you tried it out? Would love to hear if it still doesn't meet your use case.

We'll be working on making adding custom widgets easier so that we can power widget use cases faster.

yan-hic commented 1 year ago

Yes, I am using mainly the table widget and have requested features through discord already. I think the main missing feature would be cell selecting and editing, without the need to click on caret.

Nikhil-Nandagopal commented 1 year ago

That sounds like a reasonable addition! cc: @dilippitchika

dilippitchika commented 1 year ago

Yes, i will prioritise this soon and deliver it in the next Quarter.

dilippitchika commented 1 year ago

There are some caveats to this which we need to bypass -

  1. We don't have a concept of cell yet, everything is expected to be defined at a column level
  2. If i remember correctly, @yan-hic wanted to enable all the columns to be editable at once either at a row level or across the table. This might be tricky because we have 2 different modes on the table, one for display and one for editing. We only process data after editing is done.

@yan-hic one solution which i am thinking of exploring is

  1. making the cell itself selectable and editable with a keypress or a click (today it's a double click)
  2. navigate cells using arrow keys in keyboard rather than having to move cursor. Will this help you get to the experience you are looking for? This will mimic the experience in google sheets
yan-hic commented 1 year ago

@dilippitchika you're reading my mind - navigating (pointer or keyboard arrows) and introducing the concept of CurrentCell and/or CurrentColumn would be great. Then editing could indeed be enabled by pressing Enter or F2 (as seen elsewhere), or a configurable keystroke. One important feature though: copy/pasting experience can be better. Pasting works as-is (using whatever shortcut e.g. Ctrl-V on Win) but copying the cell content should be as easy as using the shortcut (e.g. Ctrl-C) while on the cell. Currently, one needs to edit, select the text and copy.

Nikhil-Nandagopal commented 10 months ago

@yan-hic we recently introduced a custom widget that makes it really easy to add widgets like a Datagrid. Check out the post below where you can fork the data grid into your application. https://community.appsmith.com/template/data-grid