Excelの列の形式を数字に変換する
Excel等では列が"AA"とか"AB"のようにアルファベットで表示されているんだけど、この表記だと今の列が何列目か直観的に分からないので書いてみた。
def col_to_number(str) sum = 0 al = ("a".."z").to_a.join str.downcase.split(//).reverse.each_with_index do |s, i| sum += (al.index(s) + 1) * [(26 ** i), 1].max end sum end
例
irb(main):270:0> col_to_number "a" => 1 irb(main):271:0> col_to_number "aa" => 27