# \[ANN\] TableView.jl

**URL:** <https://discourse.julialang.org/t/ann-tableview-jl/21148>\
**Category:** Package Announcements\
**Tags:** package, announcement\
**Created:** [February 24, 2019, 4:22pm UTC](https://discourse.julialang.org/t/ann-tableview-jl/21148 "2019-02-24T16:22:57Z")\
**Posts on this page:** 7\
**Page:** 1

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [February 24, 2019, 4:22pm UTC](https://discourse.julialang.org/t/ann-tableview-jl/21148/1 "2019-02-24T16:22:57Z")

</div>

Hi all,

I’d like to announce [TableView.jl](https://github.com/JuliaComputing/TableView.jl), a [WebIO.jl](https://github.com/JuliaGizmos/WebIO.jl) based package for inspecting arbitrarily large [Tables.jl](https://github.com/JuliaData/Tables.jl)-compatible tables (`DataFrame`s, Queryverse-tables, etc…).

 ![](https://global.discourse-cdn.com/julialang/original/3X/0/6/06be7aee547a19b128e3dee951b7dff3cde07e14.png)

Multi-column filtering and sorting works for small datasets (\< 10k rows) and is completly handled by the frontend. For large datasets (which are lazy-loaded into the UI, so there’s nothing stopping you from viewing tables with arbitrarily many rows) this does not work yet, but could be implemented in the backend.

It might be possible to extend this package’s functionality to include editing cells, but there are no immediate plans for that from my side.

IJulia and Juno\* natively display the output of `showtable`, but if you’re working in the REPL you’ll need to use e.g. Blink.jl to display the table (see screenshot above).

\*) Only works with WebIO 0.7.x right now, but I’m working on a fix for newer versions.

---

<div class="post-metadata">

**Author:** ![piever](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/piever/32/1815_2.png) [@piever](https://discourse.julialang.org/u/piever)\
**Post date:** [February 24, 2019, 6:30pm UTC](https://discourse.julialang.org/t/ann-tableview-jl/21148/2 "2019-02-24T18:30:58Z")

</div>

Nice! Works very solidly, thanks for all the work you (and Shashi) put into this. One minor comment: I think it’s perfectly fine to go for lazy loading (and I’m impressed by the excellent performance on a large dataset I’ve tested with) but it may be better to disable the filtering and sorting buttons when the data is too big and they don’t work (if there is a simple option for this in the javascript library), otherwise they are a bit misleading.

---

<div class="post-metadata">

**Author:** ![aaowens](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/aaowens/32/12101_2.png) [@aaowens](https://discourse.julialang.org/u/aaowens)\
**Post date:** [February 24, 2019, 7:29pm UTC](https://discourse.julialang.org/t/ann-tableview-jl/21148/3 "2019-02-24T19:29:52Z")

</div>

Great! This was of the few remaining reasons I use Stata for data analysis instead of Julia.

The next major reason is Stata’s great support for panel data. It does lags and differences as a simple L.varname or D.varname once you’ve specified the ID and time keys.

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [February 24, 2019, 7:38pm UTC](https://discourse.julialang.org/t/ann-tableview-jl/21148/4 "2019-02-24T19:38:44Z")

</div>

A bit off topic but this will also be getting an upgrade as soon as a re-write for formula constructors is finished in [this PR](https://github.com/JuliaStats/StatsModels.jl/pull/71).

---

<div class="post-metadata">

**Author:** ![pdeffebach](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pdeffebach/32/10320_2.png) [@pdeffebach](https://discourse.julialang.org/u/pdeffebach)\
**Post date:** [February 24, 2019, 7:40pm UTC](https://discourse.julialang.org/t/ann-tableview-jl/21148/5 "2019-02-24T19:40:17Z")

</div>

Great work!

What are the basic requirements to implement this? Does it have to be an Electron window or is it just anything that can render the html?

Also I agree with piever, a slightly more lightweight option would also be cool.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [February 24, 2019, 8:11pm UTC](https://discourse.julialang.org/t/ann-tableview-jl/21148/6 "2019-02-24T20:11:53Z")

</div>

> [@pdeffebach](#):
>
> What are the basic requirements to implement this? Does it have to be an Electron window or is it just anything that can render the html?

Anything that can render WebIO contexts, which means HTML+JS+WebSockets, basically.

> [@pdeffebach](#):
>
> Also I agree with piever, a slightly more lightweight option would also be cool.

I don’t think he wanted a more lightweight option, just that the filter and sort buttons are disabled unless they actually work (which I definitely [agree with](https://github.com/JuliaComputing/TableView.jl/issues/8)). You can look into [BrowseTables.jl](https://github.com/tpapp/BrowseTables.jl) for a pure HTML solution though.

---

<div class="post-metadata">

**Author:** ![pfitzseb](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/pfitzseb/32/45566_2.png) [@pfitzseb](https://discourse.julialang.org/u/pfitzseb)\
**Post date:** [February 28, 2019, 10:44am UTC](https://discourse.julialang.org/t/ann-tableview-jl/21148/7 "2019-02-28T10:44:57Z")

</div>

[v0.2.0](https://github.com/JuliaComputing/TableView.jl/releases/tag/v0.2.0) is out now, with a few improvements:

- better default for table height ([#11](https://github.com/JuliaComputing/TableView.jl/pull/11))
- hide filter/sort buttons for async tables ([#12](https://github.com/JuliaComputing/TableView.jl/pull/12))
- use fixed ag-grid version ([#13](https://github.com/JuliaComputing/TableView.jl/pull/13))
