如何使用Pandas获取Excel单元格的编号(如A21格式)
Pandas获取Excel A1格式单元格编号方案
完全可以实现,核心逻辑是将Pandas的0基列索引转换为Excel的字母列标识,再和对应行号拼接即可。
1. 列索引转Excel字母的工具函数
可以直接复用下面的转换函数,输入Pandas的0基列索引,返回对应的Excel列字母:
def num_to_excel_col(col_idx): # 入参:Pandas的0基列索引 result = [] # 转换为1基计算 num = col_idx + 1 while num > 0: num, remainder = divmod(num - 1, 26) result.append(chr(ord('A') + remainder)) return ''.join(reversed(result))
2. 遍历过程中获取单元格编号的示例
以下是遍历DataFrame时,同步获取A1格式单元格编号的完整示例:
import pandas as pd # 示例DataFrame,可替换为你读取到的Excel数据 df = pd.read_excel("你的文件路径.xlsx") for row_idx, row_data in df.iterrows(): # Excel行号计算:如果读取Excel时保留了表头行,Excel行号=Pandas行索引+2;无表头则+1 excel_row_num = row_idx + 2 for col_idx, col_name in enumerate(df.columns): # 生成A1格式单元格编号 excel_col = num_to_excel_col(col_idx) cell_address = f"{excel_col}{excel_row_num}" # 此处可直接使用cell_address设置超链接 print(f"单元格{cell_address},值为{row_data[col_name]}")
补充说明
- 如果你同时使用openpyxl操作Excel,可直接调用内置方法转换列号,无需自己实现工具函数:
from openpyxl.utils import get_column_letter # 入参需要是1基的列号,所以Pandas0基索引要+1 excel_col = get_column_letter(col_idx + 1) - 行号计算可以根据你实际的Excel表头情况调整偏移量,确保和实际Excel单元格位置匹配即可。
内容的提问来源于stack exchange,提问作者Us86
相关产品推荐
相关产品推荐

