96SEO 2026-02-23 12:21 19
所以就去https://pkg.go.dev/瞄了一眼看看有没有啥适合的库能够把输出整的好看点的于是找到了一个库github.com/jedib0t/go-pretty/v6/table这是一个在命令行输出格式化表格的库这里记录一下使用这个库进行一些格式化输出的过程。

其实还有一个比较简单的库叫做gotable也能实现基础的格式化输出功能使用起来也方便些不过功能相对来说就要单一一些在表格样式设置上会差一些没那么自由也可以看下https://pkg.go.dev/github.com/liushuochen/gotable#section-readme
首先我们要生成一个Table结构体的实例可以直接New一个也可以自己构造
table.NewWriter()NewWriter会返回一个Writer接口
AvgRtt}这样生成了一个表头行然后要通过AppendHeader方法在表格中生效
t.AppendHeader(header)看看效果表头已经打印出来了
----------------------------------------------
----------------------------------------------
----------------------------------------------插入行
数据的插入和表头的生成类似要生成一个table.Row然后调用AppendRow方法
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------当然也可以生成table.Row的切片后调用一次AppendRows方法效果和上面是一样的
AppendRows})}d.T.AppendRows(rows)
}--------------------------------------------------------
--------------------------------------------------------
--------------------------------------------------------表格标题
}-------------------------------------------------------------
--------------------------------------------------------
--------------------------------------------------------
--------------------------------------------------------自动标号
在插入行的时候我额外输入了一个ID列作为标号其实table提供了相关的方法和接口只需要调用SetAutoIndex方法增加自动的索引列即可
AvgRtt}d.T.AppendHeader(header)d.T.SetAutoIndex(true)
}------------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------
-------------------------------------------------------单元格合并
有的时候相邻单元格的值一样我们可能会想要进行合并这样更美观单元格合并分为列合并和行合并先定义一下这里的列合并和行合并
列合并针对单列如果单列中的多个相邻行数据一样那么就合并为一个大行行合并针对单行如果单行中的多个相邻列数据一样那么久合并为一个大列
--------------------------------------------------------------
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------------------列合并
{d.T.SetColumnConfigs([]table.ColumnConfig{{Name:
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------------------这样看表格线条不明显感觉不到区分那么可以加上一些设置d.T.Style().Options.SeparateRows
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------
---------------------------------------------------------
---------------------------------------------
---------------------------------------------------------
---------------------------------------------------------行合并
行合并我们对最后一行的汇总行进行合并具体做法是在添加汇总行时增加RowConfig参数
{d.T.AppendFooter(table.Row{Total,
}---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------
---------------------------------------------------------
---------------------------------------------
---------------------------------------------------------
------------------------------------------------------------样式设置
现在整个表格已经生成但我们还需要进行一些美化这就要对表格的样式进行设置了
text.AlignCenter,})}d.T.SetColumnConfigs(c)
---------------------------------------------------------
---------------------------------------------------------
---------------------------------------------
---------------------------------------------------------
---------------------------------------------
---------------------------------------------------------
------------------------------------------------------------数字自动高亮标红
在我的应用场景中ping的ip如果出现了丢包情况那就要红色高亮方便使用者马上关注到这种情况下可以通过Transformer来设置
text.Colors{text.BgRed}warnTransformer
val)})d.T.SetColumnConfigs([]table.ColumnConfig{{Name:
(fmtmath/randgithub.com/jedib0t/go-pretty/v6/tablegithub.com/jedib0t/go-pretty/v6/text
AvgRtt}d.T.AppendHeader(header)d.T.SetAutoIndex(true)//
d.T.SetStyle(table.StyleLight)d.T.Style().Options.SeparateRows
table.Row{fmt.Sprintf(10.0.0.%v,
1d.T.AppendRow(row)}d.T.AppendRow(table.Row{fmt.Sprintf(10.0.0.%v,
table.Row{fmt.Sprintf(10.0.0.%v,
{d.T.AppendFooter(table.Row{Total,
{d.T.SetColumnConfigs([]table.ColumnConfig{{Name:
text.AlignCenter,})}d.T.SetColumnConfigs(c)
text.Colors{text.BgRed}warnTransformer
val)})d.T.SetColumnConfigs([]table.ColumnConfig{{Name:
demo.AddTitle()demo.AppendRow()demo.AppendRows()//
demo.ColumnMerge()demo.AppendFooter()//
demo.SetAlignCenter()demo.SetWarnColor()demo.Print()
本文介绍了使用第三方库美化Golang的命令行表格格式化输出除了table以外go-pretty库中还包含了进度条、列表等美化方法感兴趣可以自己看看官方文档。
作为专业的SEO优化服务提供商,我们致力于通过科学、系统的搜索引擎优化策略,帮助企业在百度、Google等搜索引擎中获得更高的排名和流量。我们的服务涵盖网站结构优化、内容优化、技术SEO和链接建设等多个维度。
| 服务项目 | 基础套餐 | 标准套餐 | 高级定制 |
|---|---|---|---|
| 关键词优化数量 | 10-20个核心词 | 30-50个核心词+长尾词 | 80-150个全方位覆盖 |
| 内容优化 | 基础页面优化 | 全站内容优化+每月5篇原创 | 个性化内容策略+每月15篇原创 |
| 技术SEO | 基本技术检查 | 全面技术优化+移动适配 | 深度技术重构+性能优化 |
| 外链建设 | 每月5-10条 | 每月20-30条高质量外链 | 每月50+条多渠道外链 |
| 数据报告 | 月度基础报告 | 双周详细报告+分析 | 每周深度报告+策略调整 |
| 效果保障 | 3-6个月见效 | 2-4个月见效 | 1-3个月快速见效 |
我们的SEO优化服务遵循科学严谨的流程,确保每一步都基于数据分析和行业最佳实践:
全面检测网站技术问题、内容质量、竞争对手情况,制定个性化优化方案。
基于用户搜索意图和商业目标,制定全面的关键词矩阵和布局策略。
解决网站技术问题,优化网站结构,提升页面速度和移动端体验。
创作高质量原创内容,优化现有页面,建立内容更新机制。
获取高质量外部链接,建立品牌在线影响力,提升网站权威度。
持续监控排名、流量和转化数据,根据效果调整优化策略。
基于我们服务的客户数据统计,平均优化效果如下:
我们坚信,真正的SEO优化不仅仅是追求排名,而是通过提供优质内容、优化用户体验、建立网站权威,最终实现可持续的业务增长。我们的目标是与客户建立长期合作关系,共同成长。
Demand feedback