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

5
如何从列索引26获取字符序列,例如"AA"
3个回答

11
这是一个递归哈希函数,它会为您处理索引:
index_hash = Hash.new {|hash,key| hash[key] = hash[key - 1].next }.merge({0 => "A"})
index_hash[26] #=> "AA"

这里的关键是 `.next` 方法,当应用在字符串上时,会返回字母表中紧随其后的字符串,例如 `"CD".next #=> "CE"`。
你能澄清你的第一个问题吗?

4
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"

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接