module AxlsxReport::ColumnNameConv
Public Instance Methods
column_name_to_num(name)
click to toggle source
'Z' => 25 'AA' => 26
# File lib/axlsx_report/column_name_conv.rb, line 7 def column_name_to_num(name) num = 0 name.upcase.each_char do |c| num *= 26 if num > 0 add = c.ord - "A".ord + 1 raise "Invalid symbol in Excel column name: '#{c}'" if add < 1 || add > 26 num += add end num - 1 end
column_num_to_name(num)
click to toggle source
1 => 'А' 26 => 'Z' 27 => 'AA' 28 => 'АB'
# File lib/axlsx_report/column_name_conv.rb, line 22 def column_num_to_name(num) name = "" while num > 0 nm = (num - 1) % 26 num = (num - 1) / 26 name << ("A".ord + nm).chr end name.reverse end