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

如何在openpyxl中仅用整数定位并修改单元格值?

解决方法

你代码报错的核心原因是不能直接对cell()方法返回的对象赋值,必须通过它的.value属性来设置单元格内容。把报错的那行代码改成:

s2.cell(row=r, column=c).value = "Grant"

另外你的代码可以简化,第二个iter_cols循环完全是冗余的,直接用while循环逐行检查更清晰,优化后的完整代码如下:

c = 0
# 遍历第一行找值为"Prom"的列
for row in s2.iter_rows(min_row=1, max_row=1, max_col=100):
    for cell in row:
        c += 1
        print(cell.value)
        if cell.value == "Prom":
            print("Working so far")
            r = 2
            # 逐行检查目标列,直到找到空白单元格
            while s2.cell(row=r, column=c).value is not None:
                print("Nope")
                r += 1
            # 给空白单元格赋值
            s2.cell(row=r, column=c).value = "Grant"
            break
    else:
        continue
    break

补充两个细节:

  • 用is not None替代!= None是Python的规范写法,逻辑更严谨
  • 修改完成后记得调用工作簿的save()方法(比如wb.save("your_file.xlsx")),否则所有修改不会写入文件

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.23 13:25:06