Module: Rrxcell::Addressing

Defined in:
lib/rrxcell/addressing.rb

Constant Summary collapse

ALPHABET_CHARCTORS =
26

Class Method Summary collapse

Class Method Details

.cell_address_to_column_position(cell_address) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/rrxcell/addressing.rb', line 5

def cell_address_to_column_position(cell_address)
  v = 0
  factor = 1
  
  column_string(cell_address).reverse.each_char do |char|
    _v = char.downcase.ord - "a".ord + 1
    v += ((_v * factor) - 1)
    factor += ALPHABET_CHARCTORS
  end

  v
end

.cell_address_to_row_column_position(cell_address) ⇒ Object



18
19
20
21
22
23
# File 'lib/rrxcell/addressing.rb', line 18

def cell_address_to_row_column_position(cell_address)
  [
    cell_address_to_row_position(cell_address),
    cell_address_to_column_position(cell_address)
  ]
end

.cell_address_to_row_position(cell_address) ⇒ Object



25
26
27
# File 'lib/rrxcell/addressing.rb', line 25

def cell_address_to_row_position(cell_address)
  row_string(cell_address).to_i - 1
end

.cell_address_to_sheet_position(cell_address, book = nil) ⇒ Object



29
30
31
32
# File 'lib/rrxcell/addressing.rb', line 29

def cell_address_to_sheet_position(cell_address, book = nil)
  validate_book!(book)
  book.sheet_names.index(sheet_string(cell_address))
end

.cell_address_to_sheet_row_column_position(cell_address, book = nil) ⇒ Object



34
35
36
37
38
39
40
# File 'lib/rrxcell/addressing.rb', line 34

def cell_address_to_sheet_row_column_position(cell_address, book = nil)
  validate_book!(book)
  [
    cell_address_to_sheet_position(cell_address, book),
    cell_address_to_row_column_position(cell_address)
  ].flatten
end