Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 如何将dict的值写入openpyxl中的空(新)列?_Python_Python 2.7_Dictionary_Openpyxl - Fatal编程技术网

Python 如何将dict的值写入openpyxl中的空(新)列?

Python 如何将dict的值写入openpyxl中的空(新)列?,python,python-2.7,dictionary,openpyxl,Python,Python 2.7,Dictionary,Openpyxl,给定一个dictaNewDictEachDay和一个工作表ws=openpyxl.load\u工作簿('roi.xlsx',data\u only=True)。工作表[0] ws的第0(A)列包含键。所有其他列都是空的(目前)。每天,我都想加载工作簿,并更新ws,因此: 将当前日期写入新列的顶部单元格 对于aNewDictEachDay.values()中的每个值: 如果其键已在列0中: 将该值写入相应的 在新列中放置(行) 其他: 将键作为新行添加到第0列中 将该值写入相应的 在新列中

给定一个dict
aNewDictEachDay
和一个工作表
ws
=
openpyxl.load\u工作簿('roi.xlsx',data\u only=True)。工作表[0]

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

  • 将当前日期写入新列的顶部单元格
  • 对于
    aNewDictEachDay.values()
    中的每个值:
    • 如果其键已在列0中:
      • 将该值写入相应的
        在新列中放置(行)
    • 其他:
      • 将键作为新行添加到第0列中
      • 将该值写入相应的
        在新列中放置(行)
  • 我通常将openpyxl用于已经填充了列的电子表格。由于电子表格目前只有一列,其他列(在本例中为B)的概念似乎不存在:

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

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

    如果您只想添加单个单元格,最好使用
    ws.cell()
    ,这将允许您指定行和列索引

    要插入“B”列,请执行以下操作:


    openpyxl使用1-索引。为什么使用ws.cell()为分配使用1-索引,而访问单元格使用0-索引?ws.columns[0][0](不是ws.columns[1][1])给出了工作表是专用的数据结构,选择1索引是为了在R1C1和A1符号之间切换时减少“关闭1”错误。另一方面,rows和columns属性是直接的Python列表(或生成器),它们是0索引的。@charleckLark OK。伟大的图书馆,以及readthedocs网站上的大量信息。继续努力。
    for row in aNewDictEachDay.values():
    
    for i in range(11, 1):
        ws.cell(row=i, column=2).value = i