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

如何在Python的openpyxl中提取字符串的前两个字符?

解决openpyxl提取单元格字符串前两位赋值的问题

错误原因分析

你之前的写法都不符合Python和openpyxl的语法规则:

  • ws["A3":2] 是选取单元格范围的语法,不是提取字符串内容的方式
  • ws[A4]= ws["A3"]:2 存在语法错误,目标单元格引用没加引号,且字符串切片的写法完全错误
  • LEFT(sheet["A3"],2) 是Excel内置函数的写法,不能直接在Python代码中调用

正确实现代码

要提取单元格字符串的前两位,需要先获取目标单元格的值,再用Python的字符串切片语法[:2]提取前两位,最后赋值给目标单元格:

import openpyxl

# 加载工作簿
wb = openpyxl.load_workbook('c:/Users/me/myfolder/myfile.xlsx')
# 选中工作表
ws = wb["mysheet"]

# 获取A3单元格的值,提取前两位后赋值给A4
cell_value = ws["A3"].value
if cell_value is not None and isinstance(cell_value, str):
    ws["A4"] = cell_value[:2]
else:
    # 处理单元格为空或非字符串的情况,比如赋值空字符串
    ws["A4"] = ""

# 保存工作簿,否则修改不会生效
wb.save('c:/Users/me/myfolder/myfile.xlsx')

关键说明

  • 必须通过.value属性获取单元格的内容,直接引用ws["A3"]得到的是单元格对象,不是字符串值
  • 字符串切片[:2]会取字符串的前两个字符,如果原字符串长度不足2,会返回整个字符串(比如原内容是"R",则返回"R")
  • 增加空值和类型判断是为了避免None或非字符串类型导致的报错
  • 最后一定要调用wb.save()保存修改,否则所有操作都不会写入到文件中

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 13:55:20