在excel中:
第1列 --> A
第2列 --> B
第3列 --> C
.
.
.
第26列 --> Z
第27列 --> AA
.
.
.
第702列 --> ZZ
第703列 --> AAA
.
.
.
如何通过ID得到列名,例如:func(703)=="AAA"
```go
func getColNameWithID(id int) (res string) {
if id == 0 {
return ""
}
resByte := make([]byte, 0)
idToColName(id, &resByte)
return string(resByte)
}
func idToColName(id int, res *[]byte) {
m := id / 26
n := id % 26
if m > 0 && n == 0 {
m--
n = 26
}
if m > 0 {
idToColName(m, res)
}
if n > 0 {
*res = append(*res, byte('A'+n-1))
}
}
func colNameToID(s string) (n int, err error) {
if len(s) == 0 {
return 0, fmt.Errorf("syntaxError")
}
for _, c := range []byte(s) {
var d byte
switch {
case 'a' <= c && c <= 'z':
d = c - 'a' + 1
case 'A' <= c && c <= 'Z':
d = c - 'A' + 1
default:
return 0, fmt.Errorf("syntaxError:%s", s)
}
n *= 26
n += int(d)
}
return n, nil
}
```
#5
更多评论
```
func ExcelConvertTitleToNum(s string) (res int) {
res = 1
//输入验证
if s == "" {
return 0
}
ss := []byte(s)
length := len(ss)
fmt.Println()
for i := 0; i < length; i++ {
res = i*26 + int(ss[i]+1)%int('A')
}
return
}
```
#1