使用Openpyxl向Excel列A首个空白单元格写入值报错求助
问题分析
报错AttributeError: 'NoneType' object has no attribute 'value'的核心原因是:当A列所有已存在的单元格都有值时,你的循环找不到空白单元格,empty_cell变量始终未被赋值,保持为None,后续访问empty_cell.value自然触发错误。
解决方案
我们需要先检查A列是否存在空白单元格,若不存在则直接在A列最后一行的下一行写入数据。以下是修正后的代码:
import openpyxl var1 = "1" var2 = "example" # 加载目标工作簿 workbook = openpyxl.load_workbook('C:/Users/CJU3FE/Desktop/test.xlsx') sheet = workbook.active empty_cell = None # 遍历A列所有已使用单元格,寻找第一个空白单元格 for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, min_col=1, max_col=1): for cell in row: if cell.value is None: empty_cell = cell break if empty_cell is not None: break # 找到目标后立即终止遍历,提升效率 # 若A列无空白单元格,直接定位到最后一行的下一行A列 if empty_cell is None: empty_cell = sheet.cell(row=sheet.max_row + 1, column=1) # 写入变量到对应位置 empty_cell.value = var1 next_cell = empty_cell.offset(column=1) next_cell.value = var2 # 保存文件(可修改路径实现备份,同名则覆盖原文件) workbook.save('C:/Users/CJU3FE/Desktop/test.xlsx')
关键改动说明
- 增加
empty_cell的空值判断,覆盖A列无空白单元格的场景,自动定位到下一行写入 - 找到第一个空白单元格后立即终止循环,避免不必要的遍历
- 保存路径与原文件一致,避免文件保存到默认目录导致找不到
内容的提问来源于stack exchange,提问作者OneHotEncoder
相关产品推荐
相关产品推荐

