|
发表于 2018-3-27 22:07:03
|
显示全部楼层
- def SpreadSheetExchange(st):
- lis1 = [i for i in range(1, 27)]
- lis2 = [j for j in range(65, 91)]
- lis3 = [chr(i) for i in lis2]
- dic1 = dict(zip(lis1, lis3))
- dic2 = dict(zip(lis3, lis1))
- if st.count('R') == 1 and st.count('C') == 1 and st[1] != 'C':
- t = st.partition('C')
- Column = int(t[2])
- st = t[0]
- t = st.partition('R')
- Row = int(t[2])
- lis = []
- while Column != 0:
- lis.insert(0, Column % 26)
- Column //= 26
- st = ''
- for i in lis:
- st += dic1[i]
- return st + str(Row)
- else:
- Column = []
- Column_num = []
- Row = []
- for i in range(len(st)):
- if ord(st[i]) >= 65:
- Column.append(st[i])
- else:
- Row.append(st[i])
- for i in Column:
- Column_num.append(dic2[i])
- Column_num.reverse()
- Sum = 0
- for i in range(len(Column_num)):
- Sum += Column_num[i] * 26 ** i
- st = ''
- for i in Row:
- st += i
- return 'R' + st + 'C' + str(Sum)
- st = ['A1', 'R1C1', 'D5', 'R5C4', 'AA48', 'R48C27', 'BK12', 'R12C63']
- for i in st:
- print('%-19s%-19s' % (i, SpreadSheetExchange(i)))
复制代码 |
|