# \[ANN\] DashTable.jl: Web-app based interactive table component

**URL:** <https://discourse.julialang.org/t/ann-dashtable-jl-web-app-based-interactive-table-component/66266>\
**Category:** Package Announcements\
**Tags:** data, dataframes, tables, dashtable, data\_science\
**Created:** [August 12, 2021, 12:32pm UTC](https://discourse.julialang.org/t/ann-dashtable-jl-web-app-based-interactive-table-component/66266 "2021-08-12T12:32:18Z")\
**Posts on this page:** 8\
**Page:** 1

<div class="post-metadata">

**Author:** ![Manu\_Francis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/manu_francis/32/10010_2.png) [@Manu\_Francis](https://discourse.julialang.org/u/Manu_Francis)\
**Post date:** [August 12, 2021, 12:32pm UTC](https://discourse.julialang.org/t/ann-dashtable-jl-web-app-based-interactive-table-component/66266/1 "2021-08-12T12:32:18Z")

</div>

[DashTable.jl](https://github.com/plotly/dash-table/tree/master) provides an interactive table component designed by Plotly for viewing, editing, and exploring large datasets. Now all data scientists and analysts using Julia can view their data in an interactive table in a web-app based dashboard. This component was written from scratch in React.js specifically for the Dash community. Its API was designed to be ergonomic, and its behaviour is completely customizable through its properties. DataTable is rendered with standard, semantic HTML

 markup, making it accessible, responsive, and easy to style. The extensive documentation has many examples, and you can try them out by installing DashTable.jl. This package provides the following features with tables:

- Conditional Formatting
- Filtering
- Tooltips
- Styling
- Sorting
- Paging
- Editing  
and many more  
The complete documentation with examples can be found on [Dash DataTable | Dash for Julia Documentation | Plotly](https://dash-julia.plotly.com/datatable)

---

<div class="post-metadata">

**Author:** ![lungben](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lungben/32/12314_2.png) [@lungben](https://discourse.julialang.org/u/lungben)\
**Post date:** [August 12, 2021, 6:43pm UTC](https://discourse.julialang.org/t/ann-dashtable-jl-web-app-based-interactive-table-component/66266/2 "2021-08-12T18:43:31Z")

</div>

Thanks, looks great!

A great enhancement would be a higher-level API to do e.g. “Backend Paging with Filtering and Multi-Column Sorting” (from [Python-Driven Filtering, Paging, Sorting | Dash for Julia Documentation | Plotly](https://dash-julia.plotly.com/datatable/callbacks)) with a single Julia command (with a Tables.jl compatible source).

---

<div class="post-metadata">

**Author:** ![rafael.guerra](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/rafael.guerra/32/216610_2.png) [@rafael.guerra](https://discourse.julialang.org/u/rafael.guerra)\
**Post date:** [August 12, 2021, 10:58pm UTC](https://discourse.julialang.org/t/ann-dashtable-jl-web-app-based-interactive-table-component/66266/3 "2021-08-12T22:58:19Z")

</div>

@Manu_Francis, is there a video for dummies on the use cases of DashTable.jl?

Sorry for the dumb questions that arisen from trying the [Editable DataTable](https://dash-julia.plotly.com/datatable/editable) example:

1. `run_server(app, "0.0.0.0", debug=true)` is in all examples but does not seem to work. Had to use instead: `run_server(app, "0.0.0.0", 8080)` and then point web browser to: [http://127.0.0.1:8080](http://127.0.0.1:8080)

2. After the dataframe table has been edited in the browser, can we kill it and continue the Julia program flow with the updated dataframe? What is the logic?

Thanks in advance.

---

<div class="post-metadata">

**Author:** ![Manu\_Francis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/manu_francis/32/10010_2.png) [@Manu\_Francis](https://discourse.julialang.org/u/Manu_Francis)\
**Post date:** [August 16, 2021, 4:15am UTC](https://discourse.julialang.org/t/ann-dashtable-jl-web-app-based-interactive-table-component/66266/4 "2021-08-16T04:15:29Z")

</div>

> [@rafael.guerra](#):
>
> After the dataframe table has been edited in the browse

@rafael.guerra  
Answer to Question 1: It is working in my side. May be your port 8080 is already in use. or another solution, you can set `ENV["PORT"] = 8080`. Another solution is to use different port address.  
Answer to Question 2: You cannot do like that. Or you have to save edited dataframe as CSV and load back again

---

<div class="post-metadata">

**Author:** ![tlienart](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tlienart/32/7640_2.png) [@tlienart](https://discourse.julialang.org/u/tlienart)\
**Post date:** [August 16, 2021, 7:14am UTC](https://discourse.julialang.org/t/ann-dashtable-jl-web-app-based-interactive-table-component/66266/5 "2021-08-16T07:14:33Z")

</div>

Is it possible to export a dash table to standalone HTML+JS that you could plug in a static website? if so could you show a simple example doing that? if so then it becomes possible to insert Dash tables in things like [Documenter.jl](https://github.com/JuliaDocs/Documenter.jl) or [Franklin.jl](https://github.com/tlienart/Franklin.jl) which could be pretty neat. Thanks!

---

<div class="post-metadata">

**Author:** ![lungben](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/lungben/32/12314_2.png) [@lungben](https://discourse.julialang.org/u/lungben)\
**Post date:** [August 16, 2021, 7:28am UTC](https://discourse.julialang.org/t/ann-dashtable-jl-web-app-based-interactive-table-component/66266/6 "2021-08-16T07:28:21Z")

</div>

or Pluto.jl

---

<div class="post-metadata">

**Author:** ![tlienart](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tlienart/32/7640_2.png) [@tlienart](https://discourse.julialang.org/u/tlienart)\
**Post date:** [August 16, 2021, 7:34am UTC](https://discourse.julialang.org/t/ann-dashtable-jl-web-app-based-interactive-table-component/66266/7 "2021-08-16T07:34:00Z")

</div>

Pluto has a live Julia process like IJulia so I imagine it’s pretty easy to get it to work with it (though maybe the question remains for when you export the Pluto notebook to static html).

---

<div class="post-metadata">

**Author:** ![Manu\_Francis](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/manu_francis/32/10010_2.png) [@Manu\_Francis](https://discourse.julialang.org/u/Manu_Francis)\
**Post date:** [August 19, 2021, 5:17am UTC](https://discourse.julialang.org/t/ann-dashtable-jl-web-app-based-interactive-table-component/66266/8 "2021-08-19T05:17:34Z")

</div>

Currently, using `<iframe>` is the only option to integrate DashTable in HTML application

The future release will contain the components to integrate DashTable in React.js application with communication between both apps.
