...

Source file src/github.com/jedib0t/go-pretty/v6/table/writer_test.go

Documentation: github.com/jedib0t/go-pretty/v6/table

     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  

View as plain text