python實現excel單元格位置轉10進位制座標
最近專案中碰到excel單元格位置轉10進位制座標,如下面幾個例子:
h5 =》(5, 8),表示第5行,第8列
c3 =》(3, 3),表示第3行,第3列
aDh32 =》(32, 788),表示第32行,第788列
程式碼實現如下:
def excel_item_to_rowcol(item: str):
idx_num = 0
for i, v in enumerate(item):
if v.isdigit():
idx_num = i
break
if idx_num == 0: # 字串裡面沒有找到數字或首字元是數字
return 1, 1
num_str, name_str = item[idx_num:len(item)], item[0:idx_num].upper() # 把分割的字串轉為大寫
if not num_str.isdigit(): # 數字後面還有字串
print(num_str, name_str)
return 1, 1
row, col = int(num_str), 0
power = 1
for i in range(len(name_str) - 1, -1, -1):
ch = name_str[i]
if ch < 'A' or ch > 'Z': # 判斷字串裡面是否全部為A-Z的字元
return 1, 1
col += (ord(ch) - ord('A') + 1) * power
power *= 26
return row, col
說明:
- 給輸入引數加str型別可以指定輸入引數型別,不用自己寫程式碼判斷
- 把輸入字串引數強制轉大寫,避免大小寫不能識別的問題
- 輸入字串是:字串+數字 的結構,這裡根據從字串開始找到的第一個數字的位置來分割成行列,並判斷行是否全部為數字,列是否為A~Z的字元
測試例子
print(excel_item_to_rowcol('h5'))
print(excel_item_to_rowcol('c3'))
print(excel_item_to_rowcol('Dh32'))
print(excel_item_to_rowcol('1Dh32'))
print(excel_item_to_rowcol('Dh32a'))
print(excel_item_to_rowcol('@Dh32'))
print(excel_item_to_rowcol('啊啊Dh32'))
(5, 8)
(3, 3)
(32, 112)
(1, 1)
(1, 1)
(1, 1)
(1, 1)
相關文章
- Java 獲取Excel分頁座標位置(單元格)JavaExcel
- sql實現10進位制16進位制轉換函式SQL函式
- 十進位制轉換任意進位制--鏈棧實現
- 彙編實現10進位制轉16進位制並以ASCII碼輸出ASCII
- JavaScript 進位制轉換(2進位制、8進位制、10進位制、16進位制之間的轉換)JavaScript
- vue 實現高德座標轉GPS座標Vue
- Python 進位制互相轉換(二進位制、十進位制和十六進位制)Python
- 10進位制轉8進位制(棧操作)
- shell 中轉換16進位制10進位制
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- Java Servlet 實現合併多單元格匯出ExcelJavaServletExcel
- oracle 給的轉換函式實現 十六進位制---->十進位制Oracle函式
- python進位制轉換(二進位制、十進位制和十六進位制)及注意事項Python
- python 進位制轉換Python
- 【python】進位制轉換Python
- Qt進位制轉換(十進位制轉十六進位制)QT
- 10進位制和16進位制互轉的例子
- C++實現進位制轉換工具C++
- Go語言實現十進位制轉換成二、八、十六進位制Go
- C# 2進位制、8進位制、10進位制、16進位制...各種進位制間的輕鬆轉換C#
- 百練OJ:4003:十六進位制轉十進位制(python三行程式碼實現)Python行程
- Python內建庫實現文字比較並返回差異位置座標Python
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 實現整數二進位制指定位置為0或1
- 計算機求解10進位制轉換任意進位制計算機
- 1474 十進位制轉m進位制+1475 m進位制轉十進位制
- 口算 16 進位制轉換 10 進位制,但只適合兩位的 16 進位制
- n進位制轉十進位制
- 十進位制轉十六進位制
- ORACLE中用一條SQL實現其它進位制到十進位制的轉換OracleSQL
- excel圖表標題新增和引用單元格的方法Excel
- POI設定excel單元格Excel
- 10進位制 VS 2進位制
- Python 十進位制轉換為二進位制 高位補零Python
- oracle_16進位制與10進位制轉換小示例Oracle
- 【進位制轉換】十進位制與十六進位制相互轉換方法
- 常用單位進位制
- 二進位制,八進位制,十進位制,十六進位制的相互轉換