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