将电子表格列索引转换为字符序列

时间:2012-11-27 06:29:41

标签: ruby spreadsheet

如何从列索引"AA"获取字符序列,例如26

3 个答案:

答案 0 :(得分:9)

这是一个递归哈希,它将为你处理索引:

index_hash = Hash.new {|hash,key| hash[key] = hash[key - 1].next }.merge({0 => "A"})
index_hash[26] #=> "AA"

这里的关键是.next方法,当发送到字符串时,将返回按字母顺序排列的字符串,例如"CD".next #=> "CE"

你能澄清你的第一个问题吗?

答案 1 :(得分:2)

class Numeric
  Alph = ("A".."Z").to_a
  def alph
    s, q = "", self
    (q, r = (q - 1).divmod(26)) && s.prepend(Alph[r]) until q.zero?
    s
  end
end

(26+1).alph #=> "AA"

答案 2 :(得分:0)

c = "A"
26.times { c = c.next }
c # => "AA"