我想将变量写入Excel。由于 Excel 已经填充了内容,我想开始将第一个变量写入 A 列的第一个空单元格。然后我跳转到右侧以访问 b 列中的下一个空单元格,依此类推。
在我的代码下面。我访问现有的 Excel 工作表,循环遍历 A 列,然后将第一个变量写入第一个空单元格。
import openpyxl
var1 = "1"
var2 = "example"
workbook = openpyxl.load_workbook('C:/Users/CJU3FE/Desktop/test.xlsx')
sheet = workbook.active
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
empty_cell.value = var1
next_cell = empty_cell.offset(column=1)
next_cell.value = var2
workbook.save('deine_datei.xlsx')
不幸的是,由于 AttributeError: 'NoneType' 对象没有属性 'value',我无法将 var1 写入第一个空单元格。
到目前为止,我只能访问最后写入的行并覆盖那里的值。
我知道空单元格是“NonType”,但是将一些数据放入空单元格中是否可行?我知道使用 pandas 向现有 Excel 文件添加行也是可行的,但我想使用 openpyxl 解决我的用例
我在一个简单的示例上测试了您的代码,它工作得很好。我建议你打印一些调试信息(行号、变量类型、启动变量值)。也许您已到达文档末尾,有一些合并的单元格,或者 Excel 工作表的另一个特性。 至少调试信息应该告诉您哪一行导致了错误。
r = 0
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, min_col=1, max_col=1):
print(r, row)
for cell in row:
print(cell, type(cell), cell.value)
if cell.value is None:
empty_cell = cell
break
r += 1