在用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...