summaryrefslogtreecommitdiffhomepage
diff options
context:
space:
mode:
-rw-r--r--lib/axlsx.rb10
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