找遍全网,也没有找到openpylx对列宽处理合适的方式,因为处理列宽,只能使用如下sheet.column_dimensions['B'].width=50
的方式,以上’B’为每列的序号,不同于行号为数字,列号为字母,所以说是数字就好办,直接用for 循环就好了,但是是字母就不能循环[也许有实现方式吧,没有去理解了],所以此处用chr()函数做一个转换,代码如下:
while 1:
i = input('请输入数字:')
i = eval(i)
if i <= 26:
print(chr(64 + i))
elif i<= 52 :
i = i-26
print('A' +chr(64 + i))
elif i<= 78 :
i = i-52
print('B' +chr(64 + i))
当输入1的时候,就会输出A,以此类推,因为xlsx的列号的规律为A-Z,然后就是AA-AZ,然后就是BA-BZ,以此类推,以上代码就只处理到BZ,后续按照规律继续添加elif语句即可.
实际应用:
if sheet1_num <= 26:
str_width = chr(64 + sheet1_num)
elif sheet1_num<= 52 :
sheet1_num = sheet1_num-26
str_width = 'A' +chr(64 + sheet1_num)
elif sheet1_num<= 78 :
sheet1_num = sheet1_num-52
str_width = 'B' +chr(64 + sheet1_num)
sheet1.column_dimensions[str_width].width = 20.0
ps:不是很喜欢写博客,觉得写的不好吧