给定以下内容作为xlsx roi.xlsx第一页的内容:
然后:
wb = load_workbook('roi.xlsx', data_only=True)
ws=wb.worksheets[0]
keynames = [i.value for i in ws.columns[0]]
我想从以下字典将值添加到B列:
mydict = {'carnival': 2, 'festival': 3}
当我尝试:
for k, v in mydict.items():
keyPosition = keynames.index(k)
ws.cell(row = keyPosition, column = 2).value = v
我最后得到一个新的列B,但整个字段为空,并且当我用wb.save保存文件后重新打开文件时,Excel无法打开文件,因为文件已损坏.
解决方法:
我认为问题在于您正在使用键名索引存储在B列中,索引从0开始,但是B列没有任何0行.理想情况下,您应该获取-openpyxl.utils.exceptions.CellCoordinatesException:没有行0(B0)
尝试使用此代码(以开始更改第1行的值,而不是从0开始)-
for k, v in mydict.items():
keyPosition = keynames.index(k)
ws.cell(row = keyPosition + 1, column = 2).value = v