Python 3 - 将字典键和值写入Excel单元格

时间:2017-05-17 14:47:51

标签: python excel dictionary for-loop openpyxl

我目前正在尝试编写一个Python 3脚本来读取和操作Excel文件,告诉我在特定地点购买的频率。为此我使用openpyxl模块。

我的脚本当前会自动为我创建一个字典,其中包含每个商店的唯一键以及从中购买的频率。 它看起来像这样:{'Sains': 2, 'Sains Petrol': 1, 'McDonalds': 2, 'Council Tax': 1, 'Car Repair': 1, 'Steam Purchase': 1}

接下来我要做的是写下每个商店的名称以及从彼此相邻的单元格中购买的频率值,如下所示:

  

A3:购物|编号

     A4:Shop |编号

     

A5:购物|编号

每个商店及其编号应该在新的一行。

写入单元格的函数是new_sheet['A3'] = 'Hello World'new_sheet是我分配给工作表的变量的名称。

我现在想写一段代码,将每个商店及其编号写入我的新表。

我成功地设法编写了一个for循环,它允许我将字符串写入工作表中的单元格,但只有我字典中的条目数量。 循环:

a = len(dict_shops_purchased_from)

for cell_number in range(2, a + 2):
    cell = 'A' + str(cell_number)
    for i in cell:
        new_sheet[cell] = 'Hello World'

所以这将写下“Hello World'进入细胞A3到A8。

我还设法写了一个for循环,让我把字典的关键和值变成变量:

for key, value in dict_shops_purchased_from.items():
     print(key, value)

我的问题是,如何更改代码,以便将单词 Ax 中的字典键和单元格 Bx 的值写入,因为问题是< / p>

new_sheet[cell]来自for循环,keyvalue

也是如此

我尝试了以下内容:

for key, value in dict_shops_purchased_from.items():
    print(key, value)

for cell_number in range(2, a + 2):
    cell = 'A' + str(cell_number)
    for i in cell:
        new_sheet[cell] = key

但是这只会在字典中写下最后一个条目,即“Steam购买”,六次

我是如何做到这一点的?

我希望这是有道理的

1 个答案:

答案 0 :(得分:0)

cell_no = 2
for key, value in dict_shops_purchased_from.items():
    new_sheet['A' + str(cell_no)] = key
    new_sheet['B' + str(cell_no)] = value
    cell_no += 1

你可以尝试上面的代码,希望这有帮助吗