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
- 如何標記excel單元格Excel
- 十進位制轉換任意進位制--鏈棧實現
- 彙編實現10進位制轉16進位制並以ASCII碼輸出ASCII
- 【python】進位制轉換Python
- vue 實現高德座標轉GPS座標Vue
- Qt進位制轉換(十進位制轉十六進位制)QT
- 遞迴函式實現十進位制正整數轉換為二進位制,八進位制,十六進位制遞迴函式
- verilog實現格雷碼和二進位制碼的相互轉換
- C++實現進位制轉換工具C++
- 進位制之間的轉換之“十六進位制 轉 十進位制 轉 二進位制 方案”
- 計算機求解10進位制轉換任意進位制計算機
- Go語言實現十進位制轉換成二、八、十六進位制Go
- Python內建庫實現文字比較並返回差異位置座標Python
- Python 十進位制轉換為二進位制 高位補零Python
- Python中各進位制轉換Python
- 口算 16 進位制轉換 10 進位制,但只適合兩位的 16 進位制
- n進位制轉十進位制
- 十進位制轉十六進位制
- oracle_16進位制與10進位制轉換小示例Oracle
- Java Servlet 實現合併多單元格匯出ExcelJavaServletExcel
- Excel轉百度座標系(AngularJS)ExcelAngularJS
- 二進位制,八進位制,十進位制,十六進位制的相互轉換
- 整數轉化成八進位制、十六進位制、二進位制,以及轉回
- 負數補碼(16進位制轉10進位制的負數)
- 【進位制轉換】二進位制、十六進位制、十進位制、八進位制對應關係
- 10進位制 VS 2進位制
- C++實現任意進位制的相互轉換C++
- 二進位制、十進位制與十六進位制相互轉化
- java中二進位制、八進位制、十進位制、十六進位制的轉換Java
- 二進位制,八進位制,十進位制,十六進位制之間的轉換
- 計算機基礎進位制轉換(二進位制、八進位制、十進位制、十六進位制)計算機
- 利用齊次座標進行二維座標轉換
- 二進位制轉十進位制快速方法
- PHP負數轉16進位制再轉到10進位制的正確姿勢PHP
- JAVA 二進位制,八進位制,十六進位制,十進位制間進行相互轉換Java
- 關於10進位制轉2進位制的C語言程式碼C語言
- 藍橋杯-基礎練習-十進位制轉十六進位制(Python實現)AC程式碼,註釋,適合新手~PythonC程式