/tablecli

Packages provide a convenient way to generate tabular output of any data, useful primarily for CLI tools.

Primary LanguageGoMIT LicenseMIT

tablecli

License: MIT GoDoc Go Report Card CI

Packages provide a convenient way to generate tabular output of any data, useful primarily for CLI tools.

Girl in a jacket

Example of use:

package main

import (
    table "github.com/MaxwelMazur/tablecli"
    "github.com/fatih/color"
    "strings"
)


type list struct {
    ID string 
    Name string
}

func main() {
    tbl := table.New("ID", "NAME")
    headerFmt := color.New(color.FgBlue, color.Underline).SprintfFunc()
    columnFmt := color.New(color.FgGreen).SprintfFunc()
    tbl.WithHeaderFormatter(headerFmt).WithFirstColumnFormatter(columnFmt)

    var list = []list{
        { "123123", "Jonh"},
        { "123121", "Jeff"},
    }

    for _, i := range list {
	tbl.AddRow(i.ID, i.Name)
    }

    format := strings.Repeat("%s", len(tbl.GetHeader())) + "\n"
    tbl.CalculateWidths([]string{})

    tbl.PrintHeader(format)
	for _, r := range tbl.GetRows() {
	    tbl.PrintRow(format, r)
    }
}

Output:

ID      NAME  
123123  Jonh  
123121  Jeff