如何在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
相关产品推荐
相关产品推荐

