码迷,mamicode.com
首页 > 编程语言 > 详细

Python 3 实现数字转换成Excel列名(10进制到26进制的转换函数)

时间:2018-11-11 13:48:20      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:相关   背景   知识   bsp   pen   column   style   转换函数   int   

背景:

  最近在看一些Python爬虫的相关知识,讲爬取的一些数据写入到Excel表中,当时当列的数目不确定的情况下,如何通过遍历的方式讲爬取的数据写入到Excel中。

开发环境: Python 3   openpyxl 

解决方案:Excel列名其实就是一个26进制的数,我们只需要实现26进制和10进制之间的转换就行列

代码:

 

def colname_to_num(colname):
    if type(colname) is not str:
        return colname


    col = 0
    power = 1


    for i in range(len(colname)-1,-1,-1):
        ch = colname[i]

        col += (ord(ch)-ord(A)+1)*power

        power *= 26

    return col



def column_to_name(colnum):
    if type(colnum) is not int:
        return colnum

    str = ‘‘

    while(not(colnum//26 == 0 and colnum % 26 == 0)):

        temp = 25

        if(colnum % 26 == 0):
            str += chr(temp+65)
        else:
            str += chr(colnum % 26 - 1 + 65)

        colnum //= 26
        #print(str)
    #倒序输出拼写的字符串
    return str[::-1]

 

Python 3 实现数字转换成Excel列名(10进制到26进制的转换函数)

标签:相关   背景   知识   bsp   pen   column   style   转换函数   int   

原文地址:https://www.cnblogs.com/revel171226/p/9941799.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!