1 package table 2 3 import ( 4 "fmt" 5 6 "github.com/jedib0t/go-pretty/v6/text" 7 ) 8 9 func Example_simple() { 10 // simple table with zero customizations 11 tw := NewWriter() 12 // append a header row 13 tw.AppendHeader(Row{"#", "First Name", "Last Name", "Salary"}) 14 // append some data rows 15 tw.AppendRows([]Row{ 16 {1, "Arya", "Stark", 3000}, 17 {20, "Jon", "Snow", 2000, "You know nothing, Jon Snow!"}, 18 {300, "Tyrion", "Lannister", 5000}, 19 }) 20 // append a footer row 21 tw.AppendFooter(Row{"", "", "Total", 10000}) 22 // render it 23 fmt.Printf("Table without any customizations:\n%s", tw.Render()) 24 25 // Output: Table without any customizations: 26 // +-----+------------+-----------+--------+-----------------------------+ 27 // | # | FIRST NAME | LAST NAME | SALARY | | 28 // +-----+------------+-----------+--------+-----------------------------+ 29 // | 1 | Arya | Stark | 3000 | | 30 // | 20 | Jon | Snow | 2000 | You know nothing, Jon Snow! | 31 // | 300 | Tyrion | Lannister | 5000 | | 32 // +-----+------------+-----------+--------+-----------------------------+ 33 // | | | TOTAL | 10000 | | 34 // +-----+------------+-----------+--------+-----------------------------+ 35 } 36 37 func Example_styled() { 38 // table with some amount of customization 39 tw := NewWriter() 40 // append a header row 41 tw.AppendHeader(Row{"First Name", "Last Name", "Salary"}) 42 // append some data rows 43 tw.AppendRows([]Row{ 44 {"Jaime", "Lannister", 5000}, 45 {"Arya", "Stark", 3000, "A girl has no name."}, 46 {"Sansa", "Stark", 4000}, 47 {"Jon", "Snow", 2000, "You know nothing, Jon Snow!"}, 48 {"Tyrion", "Lannister", 5000, "A Lannister always pays his debts."}, 49 }) 50 // append a footer row 51 tw.AppendFooter(Row{"", "Total", 10000}) 52 // auto-index rows 53 tw.SetAutoIndex(true) 54 // sort by last name and then by salary 55 tw.SortBy([]SortBy{{Name: "Last Name", Mode: Dsc}, {Name: "Salary", Mode: AscNumeric}}) 56 // use a ready-to-use style 57 tw.SetStyle(StyleLight) 58 // customize the style and change some stuff 59 tw.Style().Format.Header = text.FormatLower 60 tw.Style().Format.Row = text.FormatLower 61 tw.Style().Format.Footer = text.FormatLower 62 tw.Style().Options.SeparateColumns = false 63 // render it 64 fmt.Printf("Table with customizations:\n%s", tw.Render()) 65 66 // Output: Table with customizations: 67 // ┌──────────────────────────────────────────────────────────────────────┐ 68 // │ first name last name salary │ 69 // ├──────────────────────────────────────────────────────────────────────┤ 70 // │ 1 arya stark 3000 a girl has no name. │ 71 // │ 2 sansa stark 4000 │ 72 // │ 3 jon snow 2000 you know nothing, jon snow! │ 73 // │ 4 jaime lannister 5000 │ 74 // │ 5 tyrion lannister 5000 a lannister always pays his debts. │ 75 // ├──────────────────────────────────────────────────────────────────────┤ 76 // │ total 10000 │ 77 // └──────────────────────────────────────────────────────────────────────┘ 78 } 79