简介
明天学个简略点的😀,dateparse
库时偶然见遇到了这个库。
疾速应用
本文代码应用 Go Modules。
创立目录并初始化:
$ mkdir termtables && cd termtables
$ go mod init github.com/darjun/go-daily-lib/termtables
装置 termtables
库:
$ go get -u github.com/scylladb/termtables
最原始的 termtables
库为github.com/apcera/termtables
,而后原始仓库曾经被删除了。目前应用的都是其他人 fork 的仓库。
应用:
package main
import (
"fmt"
"github.com/scylladb/termtables"
)
func main() {t := termtables.CreateTable()
t.AddHeaders("User", "Age")
t.AddRow("dj", 18)
t.AddRow("darjun", 30)
fmt.Println(t.Render())
}
运行:
$ go run main.go
+--------+-----+
| User | Age |
+--------+-----+
| dj | 18 |
| darjun | 30 |
+--------+-----+
应用很不便,首先调用 termtables.CreateTable()
创立一个表格对象,调用该对象的 AddHeader()
办法增加头部信息,而后调用 AddRow()
逐行增加数据。最初调用 Render()
返回渲染后的表格字符串。
模式
解决一般的文本表格,termtables
还反对输入 HTML 和 Markdown 格局的表格。只须要调用表格对象的 SetModeHTML()/SetModeMarkdown()
办法设置一些模式即可。
func main() {t := termtables.CreateTable()
t.AddHeaders("User", "Age")
t.AddRow("dj", 18)
t.AddRow("darjun", 30)
fmt.Println("HTML:")
t.SetModeHTML()
fmt.Println(t.Render())
fmt.Println("Markdown:")
t.SetModeMarkdown()
fmt.Println(t.Render())
}
运行:
$ go run main.go
HTML:
<table class="termtable">
<thead>
<tr><th>User</th><th>Age</th></tr>
</thead>
<tbody>
<tr><td>dj</td><td>18</td></tr>
<tr><td>darjun</td><td>30</td></tr>
</tbody>
</table>
Markdown:
| User | Age |
| ------ | --- |
| dj | 18 |
| darjun | 30 |
输入的格局能够间接用在 Markdown/HTML 文件中。
总结
明天轻松一下,理解了一个玲珑的工具库 termtables
。尽管本人实现一个相似的也不简单,termtables
库额定帮咱们解决了编码、字宽等比拟繁琐的细节。有须要在写示例程序中打印相似表格之类的数据无妨试一试termtables
。
大家如果发现好玩、好用的 Go 语言库,欢送到 Go 每日一库 GitHub 上提交 issue😄
参考
- Go 每日一库 GitHub:https://github.com/darjun/go-daily-lib
- termtables GitHub:github.com/scylladb/termtables
我
我的博客:https://darjun.github.io
欢送关注我的微信公众号【GoUpUp】,独特学习,一起提高~