如何将字典的值写入 openpyxl 中的空(新)列?

How to write values of a dict to an empty (new) column in openpyxl?

给定一个字典 aNewDictEachDay 和一个工作表 ws=openpyxl.load_workbook('roi.xlsx', data_only=True).worksheets[0].

ws 的第 0 (A) 列包含键。所有其他列都是空的(目前)。每天,我都想加载工作簿,并这样更新 ws

  1. 将当前日期写入 列的顶部单元格
  2. 对于 aNewDictEachDay.values() 中的每个值:
    • 如果它的键已经在第 0 列中:
      • 用适当的方式写下该值
        将(行)放在新列中
    • 其他:
      • 将键作为新行添加到 Column0
      • 用适当的方式写下该值
        将(行)放在新列中

我通常将 openpyxl 与已经填充列的电子表格一起使用。由于电子表格目前只有一列,其他列(在本例中为 B)的概念似乎不存在:

In [238]: ws.columns
Out[238]: ((<Cell Sheet1.A1>, <Cell Sheet1.A2),)

如果一列已经存在,其各个单元格的值可以很容易地用openpyxl覆盖。但是,当该列还不存在时,它是如何完成的呢?

之后:

for row in aNewDictEachDay.values():

如何以正确的方式雇用 ws.append()

如果您只想添加单个单元格,最好使用 ws.cell(),这样您就可以指定行和列索引。

要插入 "B" 列:

for i in range(11, 1):
    ws.cell(row=i, column=2).value = i