您的位置:首页技术文章

golang 实用库gotable的具体使用

【字号: 日期:2023-11-02 19:32:53浏览:4作者:馨心
目录一 背景二 库简介三 代码3.1 创建表格3.2 增加row3.3 增加column3.4 打印表格3.5 边框操作3.6 输出json四 测试4.1 创建表格4.2 输出json五 其他参考链接一 背景

在使用cli打印结果的时候,对结果进行格式化输出,但限于内容较长的,不好自动排版,需要明确宽度等其他字段,可以使用gotable可以根据字段的长度自动调整每列的宽度,并且自动将字段居中显示。表格可以动态的新增列和数据。

二 库简介

gotable可以打印table到控制台,目前支持ASCII/Chinese characters 。可以非常轻松实现根据内容自调整局中显示,非常方便。

三 代码3.1 创建表格

func Create(columns ...string) (*table.Table, error)3.2 增加row

增加单行

func (tb *Table) AddRow(row map[string]string) error

增加多行

func (tb *Table) AddRows(rows []map[string]string) []map[string]string3.3 增加column

func (tb *Table) AddColumn(column string) error3.4 打印表格

func (tb *Table) PrintTable()3.5 边框操作

关闭边框

func (tb *Table) CloseBorder()

开启边框

func (tb *Table) OpenBorder()3.6 输出json

func (tb *Table) Json(indent int) (string, error)四 测试4.1 创建表格

package mainimport ( 'fmt' 'github.com/liushuochen/gotable')func main() { table, err := gotable.Create('country', 'city') if err != nil { fmt.Println(err.Error()) return } values := []map[string]string{{'country': 'China', 'city': 'Beijing'}, {'country': 'Japan', 'city': 'Tokyo'}, {'country': 'North Korea', 'city': 'Pyongyang'}} for _, value := range values { err := table.AddRow(value) if err != nil { fmt.Println(err.Error()) return } } r, _ := table.Json(4) fmt.Println(r) table.CloseBorder() table.PrintTable()}4.2 输出json

package mainimport ( 'fmt' 'github.com/liushuochen/gotable')func main() { tb, err := gotable.Create('Name', 'ID', 'salary') if err != nil { fmt.Println('Create table failed: ', err.Error()) return } rows := make([]map[string]string, 0) for i := 0; i < 3; i++ { row := make(map[string]string) row['Name'] = fmt.Sprintf('employee-%d', i) row['ID'] = fmt.Sprintf('00%d', i) row['salary'] = '60000' rows = append(rows, row) } jsonString, err := tb.Json(4) if err != nil { fmt.Println('ERROR: ', err.Error()) return } fmt.Println(jsonString) // output: [] tb.AddRows(rows) jsonString, err = tb.Json(4) if err != nil { fmt.Println('ERROR: ', err.Error()) return } fmt.Println(jsonString) // output: // [ // { // 'ID': '000', // 'Name': 'employee-0', // 'salary': '60000' // }, // { // 'ID': '001', // 'Name': 'employee-1', // 'salary': '60000' // // // 'ID': '002', // 'Name': 'employee-2', // 'salary': '60000' // } //]}五 其他

利用golang 的 tabwriter也可以去实现打印表格,不过定义比较麻烦,更多高级功能可以自己定义,gotable拿来即用,可以配合表格输出和json输出到控制台的场景。

参考链接

https://github.com/liushuochen/gotable

到此这篇关于golang 实用库gotable的具体使用的文章就介绍到这了,更多相关golang gotable内容请搜索优爱好网以前的文章或继续浏览下面的相关文章希望大家以后多多支持优爱好网!

标签: Golang
相关文章: