登录
首页 >  Golang >  Go问答

golang - 如何列出Excel电子表格列名称?

来源:stackoverflow

时间:2024-04-27 12:57:38 343浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《golang - 如何列出Excel电子表格列名称?》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

golang - 如何列出 Excel 列名称?

如图所示,exel 列列为 A B C ... AA AB AC ...。没有关于如何在 go lang 中列出它的示例。解析 Excel 电子表格以获取电子表格选项卡范围以获取单元格值时需要此操作


正确答案


这是一个有效的解决方案。

func getcolumnname(col int) string {
    name := make([]byte, 0, 3) // max 16,384 columns (2022)
    const alen = 'z' - 'a' + 1 // alphabet length
    for ; col > 0; col /= alen + 1 {
        name = append(name, byte('a'+(col-1)%alen))
    }
    for i, j := 0, len(name)-1; i < j; i, j = i+1, j-1 {
        name[i], name[j] = name[j], name[i]
    }
    return string(name)
}

https://go.dev/play/p/upjBQeE1x8I

op (@mahbh2001) 发布了他自己问题的答案:https://stackoverflow.com/a/71350368

以下是第 1 列到第 99 列的 getcolumnname 基准测试结果:

rocka2q:
BenchmarkA2Q-4  758865  1498 ns/op   146 B/op   73 allocs/op

OP (mahbh2001):
BenchmarkOP-4   122714  9515 ns/op  1376 B/op  341 allocs/op

op 的代码明显慢了。

文中关于的知识介绍,希望对你的学习有所帮助!若是受益匪浅,那就动动鼠标收藏这篇《golang - 如何列出Excel电子表格列名称?》文章吧,也可关注golang学习网公众号了解相关技术文章。

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>