如何使用Openpyxl将Excel全名列拆分为名和姓两个独立列
openpyxl实现全名列拆分的方案
你现有基础代码存在拼写错误:load_workboo 缺少末尾字符k,正确方法名为 load_workbook。
核心实现逻辑
- 定位存储Full name的列,示例默认Full name在A列,第一行为表头
- 在相邻列新增First Name、Last Name两个独立列的表头
- 逐行读取全名字段,去除首尾多余空格后按空格拆分字符串,拆分结果的第一段为First name,最后一段为Last name(兼容带中间名的姓名场景)
- 写入拆分结果后保存文件即可
完整代码
from openpyxl import load_workbook # 替换为你的Excel文件实际存储路径 path = "your_excel_file.xlsx" wb = load_workbook(path) ws = wb['Sheet1'] # 列号配置:A列为1,B列为2,以此类推 full_name_col = 1 # Full name所在列 first_name_col = 2 # First name写入列 last_name_col = 3 # Last name写入列 # 写入新列表头 ws.cell(row=1, column=first_name_col, value="First Name") ws.cell(row=1, column=last_name_col, value="Last Name") # 从第2行开始遍历(跳过表头行) for row in range(2, ws.max_row + 1): full_name_val = ws.cell(row=row, column=full_name_col).value # 跳过空值行 if not full_name_val: continue name_segments = full_name_val.strip().split() if len(name_segments) >= 2: # 第一段为名 ws.cell(row=row, column=first_name_col, value=name_segments[0]) # 最后一段为姓 ws.cell(row=row, column=last_name_col, value=name_segments[-1]) # 保存修改,建议加前缀另存避免覆盖原文件 wb.save("split_name_" + path)
适配调整说明
- 如果你的Full name列不在A列,修改
full_name_col对应的列号即可 - 如果不需要保留原文件,可直接将保存路径设为原文件路径完成覆盖
- 该方案完全匹配你给出的
Harry Surf拆分需求,运行后First name列值为Harry,Last name列值为Surf
内容的提问来源于stack exchange,提问作者Jesse Morelli
相关产品推荐
相关产品推荐

