将类似excel的列字母转换为整数的最简单方法是什么?
例如:
AB --> 27
AA --> 26
A --> 0
Z --> 25
Run Code Online (Sandbox Code Playgroud)
Phr*_*ogz 10
def excel_col_index( str )
value = Hash[ ('A'..'Z').map.with_index.to_a ]
str.chars.inject(0){ |x,c| x*26 + value[c] + 1 }
end
Run Code Online (Sandbox Code Playgroud)
要么
def excel_col_index( str )
offset = 'A'.ord - 1
str.chars.inject(0){ |x,c| x*26 + c.ord - offset }
end
Run Code Online (Sandbox Code Playgroud)
我会做这样的事情:
def column_name_to_number(column_name)
multipliers = ('A'..'Z').to_a
chars = column_name.split('')
chars.inject(-1) { |n, c| multipliers.index(c) + (n + 1) * 26 }
end
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
862 次 |
最近记录: |