Openpyxl:在 Excel 文件 A 列的第一个空单元格中写入值

问题描述 投票:0回答:1

我想将变量写入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 解决我的用例

python excel automation openpyxl cell
1个回答
0
投票

我在一个简单的示例上测试了您的代码,它工作得很好。我建议你打印一些调试信息(行号、变量类型、启动变量值)。也许您已到达文档末尾,有一些合并的单元格,或者 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
© www.soinside.com 2019 - 2024. All rights reserved.