Version: 0.1
Table library converts [][]string or io.Reader to a nice text-table.
Default example:
import "github.com/thibran/table" ta, _ := table.New(true, [][]string{ {"Fruits:", "Count:"}, {"Apple", "4"}, {"Banana", "25"}}...) fmt.Println(ta)
or
import "github.com/thibran/table" text := "Fruits:,Count:\nApple,4\nBanana,25\n" r := strings.NewReader(text) ta, _ := table.ReadFrom(r, true, []int{7, 6}) fmt.Println(ta)
Result:
Fruits: Count:
===============
Apple 4
Banana 25
The table contains two Style objects for the head and the body.
To e.g. add vertical lines to the body set t.BodyStyle.vLines = true.
Default with vertical body lines:
Fruits: Count:
==================
|Apple |4 |
|Banana |25 |
You can customize or pick a pre-defined style.
import "github.com/thibran/table" ta, _ := table.New(true, [][]string{ {"Fruits:", "Count:"}, {"Apple", "4"}, {"Banana", "25"}}...) ta.HeadStyle = table.NewStyle('o', '=', '|', true) ta.BodyStyle = table.NewStyle('•', '–', '|', true) ta.HeadOnlyBottomLine = false ta.BottomLine = true fmt.Println(ta)
Custom style result:
o========o=======o
|Fruits: |Count: |
o========o=======o
|Apple |4 |
•––––––––•–––––––•
|Banana |25 |
•––––––––•–––––––•
To get even more control over the table-drawing, use the Draw object from the package github.com/thibran/table/draw.