diff options
| -rw-r--r-- | lib/axlsx.rb | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/lib/axlsx.rb b/lib/axlsx.rb index 18d4a127..7d0d9e05 100644 --- a/lib/axlsx.rb +++ b/lib/axlsx.rb @@ -41,4 +41,14 @@ module Axlsx ref += ":#{items.last.r_abs}" if items.size > 1 ref end + + def self.name_to_indices(name) + raise ArgumentError, 'invalid cell name' unless name.size > 1 + v = name[/[A-Z]+/].reverse.chars.reduce({:base=>1, :i=>0}) do |v, c| + v[:i] += ((c.bytes.first - 65) + v[:base]); v[:base] *= 26; v + end + + [v[:i]-1, ((name[/[1-9]+/]).to_i)-1] + + end end |
