main.go 1.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748
  1. package main
  2. import (
  3. "fmt"
  4. "git.swzry.com/zry/ztermtab"
  5. )
  6. func main() {
  7. test1()
  8. }
  9. func test1() {
  10. // 两列,第二列自由宽度的示例
  11. ttp := ztermtab.NewTerminalTablePrinter(80, " | ")
  12. // 参数说明:
  13. // title: 标题
  14. // minWidth: 最小宽度。对于自由列,该参数无效。
  15. // maxWidth: 最大宽度。请提前规划好各列最大宽度,应确保所有列最大宽度的和加上所有分隔符宽度小于终端宽度。
  16. // 对于自由列,该参数无效。另:若表格有自由列,则需要确保所有列的最大宽度的和加上所有分隔符宽
  17. // 度,再加上自由列的最小宽度仍然小于终端宽度。
  18. // truncateOverflow: 截断超长串。若为true,超出maxWidth的字符串会被截断;若为false,
  19. // 则超出maxWidth的字符串会换行。
  20. ttp.AddColumn("command", 10, 20, false)
  21. ttp.AddColumn("description", 0, 0, false)
  22. // 设置第二列为自由列,索引从0开始
  23. ttp.SetAutoWidthColumn(1)
  24. // 在开始添加第一行数据以后,AddColumn和SetAutoWidthColumen不再起作用。
  25. ttp.AddRow([]string{
  26. "aaa",
  27. "设置3A (Authentication & Authorization & Accounting)认证相关的选项",
  28. })
  29. ttp.AddRow([]string{
  30. "dhcp",
  31. "DHCP Settings",
  32. })
  33. ttp.AddRow([]string{
  34. "emoji😀",
  35. "😂😂😂😂😂😂💻🖥🖨⌨🖱🖲💾💿📼📹📡📽🎬👩👨🧑👧👦🧒👶☝👇👈👉💪💪💪🤘🖐✋👌👍👎✊",
  36. })
  37. lines := ttp.RenderToTerminalLines()
  38. printLines(lines)
  39. }
  40. func printLines(lines []string) {
  41. for _, v := range lines {
  42. fmt.Println(v)
  43. }
  44. }