UPDATE: See Introducing Sematable for the most modern React/Redux table component.
Since @sematext focuses on Search, Data and Text Analytics, and similar areas that typically involve exclusively backend, server-side work, we rarely publish anything that deals with UI, UX, with JavaScript, front ends, and do on. However, our Search Analytics and Scalable Performance Monitoring services/products do have rich, data-driven UIs (think reports, graphs, charts, tables), so we are increasingly thinking (obsessing?) about usability, intuitive and clean interfaces, visual data representations, etc. (in fact, we have an opening for a UI/UX designer and developer). Recently, we decided to upgrade a group of Search Analytics reports that, until now, used a quickly-thrown-together HTML table that, as much as we loved its simplicity, needed a replacement. So we set out to look for something better, more functional and elegant. In the process we identified a number of JavaScript libraries for rendering and browsing tabular data. Eventually we narrowed our selection to 6 JavaScript libraries whose characteristics we analyzed. In the spirit of sharing and helping others, please find their feature matrix below.
Feature |
DataTables |
JqGrid (aka Sigma2) |
Slickgrid |
dhtmlxGrid |
Flexigrid |
ExtJs |
License | GPL v2 license or a BSD (3-point) license | LGPL | MIT | Grid License $449 | MIT | License from $600 |
Show/Hide columns | yes | No/no | No/no Update: Yes, using ColumnPicker plugin |
Yes/yes | Yes/yes | Yes/yes |
Resize/Reorder columns | yes/yes | Yes/yes | Yes/yes | Yes/yes | Yes/yes | Yes/yes |
Client side sorting | yes | yes | yes | yes | no | yes |
Support JSO as data sourc | yes | yes | yes | yes | yes | yes |
Export data to Excel/CSV | yes | yes | no | Excel and PDF | no | No, but see forum on this topic |
Endless scroll | yes | no | yes | yes | no | yes |
Filter by columns | yes | yes | Not very useful but exists in different area, not in header | yes | no | yes |
Search(all columns simultaneously). | yes | yes | yes(server) | no | yes | no |
Aggregation footer | no | no | no | yes | no | no |
Additional information | Has a lot extensions and plug-ins | Looks nice | Handles hundreds of thousands of rows with good speed | Easy java integration www.dhtmlx.com/ blog/?tag=java |
Guess which of the above libraries we chose?
If you think we missed a library that deserves a spot in our matrix or if anything looks wrong, please let us know, via comments for example.