You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何用OpenPyxl拆分全名?部分仅含名的条目引发报错

解决OpenPyxl拆分全名时的ValueError问题

你遇到的ValueError是因为当单元格只有单个名字(无空格分隔)时,split()返回的列表只有1个元素,无法直接赋值给firstname和lastname两个变量。

修复方案

下面的代码会处理两种情况:既有名字又有姓氏的单元格,以及只有名字的单元格(姓氏留空),同时还会处理空单元格避免报错:

for cell in ws[fullname_column][1:]:
    fullname = cell.value
    # 跳过空单元格
    if not fullname:
        continue
    # 最多按空格拆分1次,避免多空格全名被拆碎
    name_parts = fullname.split(maxsplit=1)
    firstname = name_parts[0]
    # 有姓氏则赋值,没有则设为空字符串
    lastname = name_parts[1] if len(name_parts) > 1 else ""
    
    ws.cell(row=cell.row, column=firstname_column).value = firstname
    ws.cell(row=cell.row, column=lastname_column).value = lastname

关键细节

  • maxsplit=1:确保像"John Michael Doe"这样的全名只会拆成["John Michael", "Doe"],不会把中间的名字也拆分出来
  • 空单元格判断:避免cell.value为None时调用split()引发新的错误
  • 姓氏默认值:当只有单个名字时,姓氏列自动填充空字符串,不会触发解包错误

内容的提问来源于stack exchange,提问作者Jesse Morelli

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.26 06:45:32