Packages
io_ansi_table
1.0.25
1.0.40
1.0.39
1.0.38
1.0.37
1.0.36
1.0.34
1.0.33
1.0.32
1.0.31
1.0.30
1.0.29
1.0.28
1.0.27
1.0.26
1.0.25
1.0.24
1.0.23
1.0.22
1.0.21
1.0.20
1.0.19
1.0.18
1.0.17
1.0.16
1.0.15
1.0.14
1.0.13
1.0.12
1.0.11
1.0.10
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.4.32
0.4.31
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.21
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.29
0.3.28
0.3.27
0.3.26
0.3.25
0.3.24
0.3.23
0.3.22
0.3.21
0.3.20
0.3.19
0.3.18
0.3.17
0.3.16
0.3.15
0.3.14
0.3.13
0.3.12
0.3.11
0.3.10
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.5
0.2.4
0.2.3
0.2.2
0.2.1
0.2.0
0.1.20
0.1.19
0.1.18
0.1.17
0.1.16
0.1.15
0.1.14
0.1.13
0.1.12
0.1.11
0.1.10
0.1.9
0.1.8
0.1.7
0.1.6
0.1.5
0.1.4
0.1.3
0.1.2
0.1.1
0.1.0
Writes data to "stdio" in a table with borders and colors. Can choose a table style to change the look of the table.
Current section
Files
Jump to
Current section
Files
io_ansi_table
README.md
README.md
# IO ANSI Table
[](https://travis-ci.org/RaymondLoranger/io_ansi_table)
Writes data to `:stdio` in a table with borders and colors.
Can choose a table style to change the look of the table.
##### Inspired by the book [Programming Elixir](https://pragprog.com/book/elixir16/programming-elixir-1-6) by Dave Thomas.
## Installation
Add `io_ansi_table` to your list of dependencies in `mix.exs`:
```elixir
def deps do
[
{:io_ansi_table, "~> 1.0"}
]
end
```
You may _also_ define `io_ansi_table` as an included application, if only using
the [IO.ANSI.Table.write/3][write/3] function:
```elixir
def application do
[
included_applications: [:io_ansi_table],
extra_applications: [:logger]
]
end
```
## Examples
```elixir
alias IO.ANSI.Table
people = [
%{name: "Mike", likes: "ski, arts", dob: "1992-04-15", bmi: 23.9},
%{name: "Mary", likes: "travels" , dob: "1992-04-15", bmi: 26.8},
%{name: "Ann" , likes: "reading" , dob: "1992-04-15", bmi: 24.7},
%{name: "Ray" , likes: "cycling" , dob: "1977-08-28", bmi: 19.1},
%{name: "Bill", likes: "karate" , dob: "1977-08-28", bmi: 18.1},
%{name: "Joe" , likes: "boxing" , dob: "1977-08-28", bmi: 20.8},
%{name: "Jill", likes: "cooking" , dob: "1976-09-28", bmi: 25.8}
]
Table.start([:name, :dob, :likes],
header_fixes: %{~r[dob]i => "Date of Birth"},
sort_specs: [asc: :dob],
align_specs: [center: :dob],
margins: [top: 2, bottom: 2, left: 2]
)
Table.format(people, style: :light)
Table.format(people, style: :light_alt)
Table.format(people, style: :light_mult)
Table.format(people, style: :cyan_alt)
Table.format(people, style: :cyan_mult)
```
## 
## 
## 
## 
## 
## Notes
For side-by-side tables, you can specify a negative top margin.
In addition to the 16 standard ANSI colors<sup>[1](#footnote1)</sup> and their
background counterparts, this package also supports the 256 Xterm colors (foreground and background).
Most of these 256 colors were given names like:
- <img src="images/00ffff.png"> `:aqua`
- <img src="images/87ff00.png"> `:chartreuse`
- <img src="images/d700ff.png"> `:psychedelic_purple`
For details, see file `config/persist_colors.exs` of dependency
[io_ansi_plus][io_ansi_plus].
The following 2 packages use `io_ansi_table` as a dependency to tabulate
data fetched from the web:
- [Github Issues][github_issues]
- [NOAA Observations][noaa_observations]
Invocation from a remote shell is now supported (courtesy of [milkwine][mw]).
Sorting on [Date][Date] columns or other struct types like [Version][Version]
is now supported.
<sup><a name="footnote1">1</a></sup> Actually 8 colors and their "bright" variants.
## Latest version
The latest version supports:
- sorting on multiple columns
- alternating row attributes
- alignment of column elements
- sort direction indicators
- negative top margin
- ANSI and Xterm colors
- invocation from remote shell
- sorting on [Date][Date] columns
[io_ansi_plus]: https://github.com/RaymondLoranger/io_ansi_plus
[Date]: https://hexdocs.pm/elixir/Date.html
[Version]: https://hexdocs.pm/elixir/Version.html
[mw]: https://github.com/milkwine
[github_issues]: https://hex.pm/packages/github_issues
[noaa_observations]: https://hex.pm/packages/noaa_observations
[write/3]: https://hexdocs.pm/io_ansi_table/IO.ANSI.Table.html#write/3