Module: AxlsxReport::ColumnNameConv
- Extended by:
- ColumnNameConv
- Included in:
- Base, ColumnNameConv
- Defined in:
- lib/axlsx_report/column_name_conv.rb
Instance Method Summary collapse
-
#column_name_to_num(name) ⇒ Object
‘Z’ => 25 ‘AA’ => 26.
-
#column_num_to_name(num) ⇒ Object
1 => ‘А’ 26 => ‘Z’ 27 => ‘AA’ 28 => ‘АB’.
Instance Method Details
#column_name_to_num(name) ⇒ Object
‘Z’ => 25 ‘AA’ => 26
7 8 9 10 11 12 13 14 15 16 |
# 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) ⇒ Object
1 => ‘А’ 26 => ‘Z’ 27 => ‘AA’ 28 => ‘АB’
22 23 24 25 26 27 28 29 30 |
# 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 |