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

2021-10-07 03:24:36 字數 1618 閱讀 7994

在用python操作excel,尤其是用openpyxl做自動化指令碼的時候,經常會碰到大批量的』取數–>填數』的操作。

可是要把一些資料填入指定的列,但是這些列的字母又都是相連的,比如『ba』,『bb』,『bc』…'cz』這種情況總不能乙個字母乙個字母的敲到程式裡吧,所以做了乙個函式,解決這個問題。

def

generate_alphabetic_sequence

(start, end)

:import string

start = start.upper(

) end = end.upper(

)def

letter2number

(s):

#把字母轉換成數字

iflen

(s)==1:

part1 =

ord(s[0]

)-64return part1

elif

len(s)==2

: part1 =

(ord

(s[0])

-64)*

26 part2 =

ord(s[1]

)-64return part1 + part2

elif

len(s)==3

: part1 =

(ord

(s[0])

-64)*

26*26 part2 =

(ord

(s[1])

-64)*

26 part3 =

ord(s[2]

)-64return 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 //

26if 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)

:)return res #返回乙個列表

你輸入(『aa』,『ac』),就會返回[『aa』,『ab』,『ac』],因為excel最大的列數為xfd,即16384,所以在函式裡做了限制,如果不需要,刪掉就好了。

mysql實現唯一序列號

需要用到事務處理和儲存過程。不具備這方面基礎的,要看一眼。一眼就可以。delimiter create procedure dede in p in int begin declare v cnt int declare v timestr int declare rowcount bigint s...

知識點一 序列

一.序列 字串,列表和元組 字串1原始字串操作符 r r 在原始字串裡,所有的字元都是直接按照字面的意思來使用,沒有轉義特殊或不能列印的字元。2.unicode字串操作符 u u 用來將標準字串或者是包含unicode字元的字串轉換成完全的unicode字串物件。3.格式化操作符 只適用於字串型別 ...

SQL學習中(一)序列

序列可以理解數值串行生成器,通俗的說是按照已經設定的規則自動產生資料的方案物件。sql server不支援 個人認為序列類似於sqlserver中的identity 1,1 可以用於在表中新增資料時,能夠自動在上乙個記錄的字段上自動加1等。建立序列的語法 create sequence 序列名 as...