python生成一串字母序列(可配合excel)

python生成一串字母序列(可配合excel)

在用python操作excel,尤其是用openpyxl做自动化脚本的时候,经常会碰到大批量的’取数–>填数’的操作。
可是要把一些数据填入指定的列,但是这些列的字母又都是相连的,比如‘BA’,‘BB’,‘BC’…'CZ’这种情况总不能一个字母一个字母的敲到程序里吧,所以做了一个函数,解决这个问题。

def generate_alphabetic_sequence(start, end):
	import string
    start = start.upper()
    end = end.upper()

    def letter2number(s): #把字母转换成数字
        if len(s) == 1:
            part1 = ord(s[0]) - 64
            return part1
        elif len(s) == 2:
            part1 = (ord(s[0]) - 64) * 26
            part2 = ord(s[1]) - 64
            return part1 + part2
        elif len(s) == 3:
            part1 = (ord(s[0]) - 64) * 26 * 26
            part2 = (ord(s[1]) - 64) * 26
            part3 = ord(s[2]) - 64
            return part1 + part2 + part3
        else:
        	raise Exception('The maximum number of Excel columns is 3')

    def get_column_name(ind):#数字转换字母
        alp = ''
        ci = ind - 1
        index = ci // 26
        if index > 0:
            alp += get_column_name(index)
        alp += string.ascii_uppercase[ci % 26]
        return alp

    start = letter2number(start)
    end = letter2number(end)
    if start > 16384 or end > 16384:
        raise Exception('column number exceed 16384')
    res = []
    for i in range(start, end + 1):
        res.append(get_column_name(i))
    return res #返回一个列表

你输入(‘aa’,‘ac’),就会返回[‘AA’,‘AB’,‘AC’],因为excel最大的列数为XFD,即16384,所以在函数里做了限制,如果不需要,删掉就好了。

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值