Convert spreadsheet number to column letter

前端 未结 13 1238
太阳男子
太阳男子 2020-11-30 05:47

I\'m looking for the opposite to this Q&A: Convert an excel or spreadsheet column letter to its number in Pythonic fashion.

or this one but in python How to conv

13条回答
  •  陌清茗
    陌清茗 (楼主)
    2020-11-30 06:14

    Recursive Implementation

    import string
    def spreadsheet_column_encoding_reverse_recursive(x):
        def converter(x):
            return (
                ""
                if x == 0
                else converter((x - 1) // 26) + string.ascii_uppercase[(x - 1) % 26]
            )
    
        return converter(x)
    

    Iterative Implementations

    Version 1: uses chr, ord

    def spreadsheet_column_encoding_reverse_iterative(x):
        s = list()
    
        while x:
            x -= 1
            s.append(chr(ord("A") + x % 26))
            x //= 26
    
        return "".join(reversed(s))
    

    Version 2: Uses string.ascii_uppercase

    import string
    def spreadsheet_column_encoding_reverse_iterative(x):
        s = list()
    
        while x:
            x -= 1
            s.append(string.ascii_uppercase[x % 26])
            x //= 26
    
        return "".join(reversed(s))
    

    Version 3: Uses divmod, chr, ord

    def spreadsheet_column_encoding_reverse_iterative(x):
        s = list()
    
        while x:
            x, remainder = divmod(x - 1, 26)
            s.append(chr(ord("A") + remainder))
    
        return "".join(reversed(s))
    

提交回复
热议问题