# FloatingTableView.jl has been submitted for registration

**URL:** <https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941>\
**Category:** Package Announcements\
**Created:** [August 14, 2020, 3:59pm UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941 "2020-08-14T15:59:12Z")\
**Posts on this page:** 11\
**Page:** 1

<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:** [August 14, 2020, 3:59pm UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/1 "2020-08-14T15:59:12Z")

</div>

My first package, [FloatingTableView.jl](https://github.com/pdeffebach/FloatingTableView.jl) has been submitted for registration.

This package is designed for users coming from Stata, which offers a super fast table viewing function that opens up a new window to see the data set.

It is also designed for users coming from R Studio and those who use Juno who but dislike the way viewing a data set in a single pane limits window snapping and clicking and dragging.

It will be available to download from the general registry after the 3-day waiting period is over. In the meantime you can play around with it using

```julia
]add https://github.com/pdeffebach/FloatingTableView.jl.git

```

FloatingTableView.jl leverages Julia Computing’s [TableView.jl](https://github.com/JuliaComputing/TableView.jl) and [Blink.jl](https://github.com/JuliaGizmos/Blink.jl) to view any [Tables.jl](https://github.com/JuliaData/Tables.jl) compatible data source in an Electron-based window.

```julia
julia> using DataFrames, FloatingTableView

julia> df = DataFrame(rand(100, 100));

julia> browse(df)

```

Because TableView.jl uses lazy-loading of data, FloatingTableView can handle very large datasets with no performance penalty. However, because it uses an Electron-based window via Blink.jl, there is a non-trivial “time to first browse” startup time. Repeated calls to `browse` will be fast.

[https://user-images.githubusercontent.com/23196228/87883381-f8a47a80-c9d4-11ea-9788-45c42b53731d.gif(image larger than 4 MB)](https://user-images.githubusercontent.com/23196228/87883381-f8a47a80-c9d4-11ea-9788-45c42b53731d.gif)

---

<div class="post-metadata">

**Author:** ![davidanthoff](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/davidanthoff/32/223493_2.png) [@davidanthoff](https://discourse.julialang.org/u/davidanthoff)\
**Post date:** [August 14, 2020, 4:02pm UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/2 "2020-08-14T16:02:25Z")

</div>

Similar to [GitHub - queryverse/ElectronDisplay.jl: An Electron.jl based figure and table display.](https://github.com/queryverse/ElectronDisplay.jl), right 🙂 Although we don’t have lazy loading (yet).

---

<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:** [August 14, 2020, 4:05pm UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/3 "2020-08-14T16:05:20Z")

</div>

I will add that to the list of comparisons! The lazy loading is definitely key. BrowseTables.jl offers something similar as well, but I found it too slow for a dataset with, say, 100,000 rows. This was very doable with FloatingTableView.

---

<div class="post-metadata">

**Author:** ![Tamas\_Papp](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/tamas_papp/32/25949_2.png) [@Tamas\_Papp](https://discourse.julialang.org/u/Tamas_Papp)\
**Post date:** [August 15, 2020, 8:29am UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/4 "2020-08-15T08:29:56Z")

</div>

> [@pdeffebach](#):
>
> BrowseTables.jl offers something similar as well, but I found it too slow for a dataset with, say, 100,000 rows.

BrowseTables.jl is intentionally super-simple, essentially a generator for static HTML.

---

<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:** [August 17, 2020, 12:21am UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/5 "2020-08-17T00:21:39Z")

</div>

FloatingTableView is now registered and ready to download!

```julia
]add FloatingTableView

```

to use the package!

---

<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:** [May 23, 2021, 8:09pm UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/6 "2021-05-23T20:09:06Z")

</div>

Update: A new version has been released with the boolean keyword argument `newwindow` which allows you to open up two or more datasets at the same time.

Here is a full docstring:

```
browse(t; newwindow = false, kwargs...)

```

Browse data source in a new Blink window using  
Tables.jl’s `showtable` function.

# Arguments

- `t`, a Tables.jl-compatible data source,  
for example a `DataFrame` or a `NamedTuple`  
of `Vector`s
- `newwindow`, boolean keyword argument to view the data  
in a new `Blink` window instead of over-writing.  
Viewing in a new window will be slower than over-writing.
- `kwargs...`, keyword arguments passed to the  
`showtable` command from TableView.jl to  
control the details of the new data viewer.  
See `showtable` for details.

# Examples

```julia
julia> t = (a = rand(10), b = rand(10))
julia> browse(t)

```

```julia
julia> t = rand(100, 100)
julia> browse(t, dark = true)

```

---

<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:** [May 31, 2021, 11:26pm UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/7 "2021-05-31T23:26:25Z")

</div>

TableView.jl recently had a version bump (h/t @xiaodai), so I made added the new version and bumped FloatingTableView to `0.2.0`. Just tagged it a new version.

---

<div class="post-metadata">

**Author:** ![xiaodai](https://sea2.discourse-cdn.com/julialang/user_avatar/discourse.julialang.org/xiaodai/32/15937_2.png) [@xiaodai](https://discourse.julialang.org/u/xiaodai)\
**Post date:** [May 31, 2021, 11:33pm UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/8 "2021-05-31T23:33:05Z")

</div>

> [@pdeffebach](#):
>
> (h/t @xiaodai),

thanks for the acknowledge, but you did all the work. haha

---

<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:** [June 1, 2021, 12:10am UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/9 "2021-06-01T00:10:53Z")

</div>

@pdeffeback, as reported before, FloatingTableView.jl does not seem to allow copying&pasting any cells in Win10.  
So, a wish for future version.

_ **NB:** _  
_BrowseTables.jl might be slower for huge tables but does allows this:_

 ![BrowseTables_range_selection_copy_paste_to_REPL](https://global.discourse-cdn.com/julialang/original/3X/a/2/a2b9801f2f6adc7fbf0892c335cb85456c411daf.png)  
 ![clipboard2matrix_REPL](https://global.discourse-cdn.com/julialang/original/3X/f/9/f942a7cafdb8569b45dba046797e9b7fdcd008e3.png)

---

<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:** [June 2, 2021, 12:44am UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/10 "2021-06-02T00:44:26Z")

</div>

It [turns out](https://github.com/JuliaComputing/TableView.jl/issues/80) ag-grid is proprietary and copy-and-pasting is an enterprise-only feature. So this feature, while important, is unlikely to happen in the near future.

PS, check out [ClipData.jl](https://github.com/pdeffebach/ClipData.jl) for a (probably) more fully-featured version of that `clip2m` function.

---

<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:** [June 2, 2021, 5:43am UTC](https://discourse.julialang.org/t/floatingtableview-jl-has-been-submitted-for-registration/44941/11 "2021-06-02T05:43:01Z")

</div>

Could [DataTables](https://datatables.net/) be a valid open source alternative?
