我会将从列表中获取的值序列写入一系列单元格。
查看
def create_excel(avg):
wb = load_workbook('output/file_base.xlsx')
ws = wb.active
ws['D20'] = avg[0]
ws['D21'] = avg[1]
ws['D22'] = avg[2]
ws['D23'] = avg[3]
ws['D24'] = avg[4]
ws['D25'] = avg[5]
wb.save('out.xlsx')
return 1
我会使用循环来完成此操作,并且我尝试了以下操作:
start, stop = 20,26
for index, row in enumerate(ws.iter_rows()):
if start < index < stop:
ws.cell[index] = avg[index]
但它返回:
list index out of range
我怎样才能做到这一点?我正在使用 openpyxl 2.3
最佳答案
您可以按如下方式指定行和列:
import openpyxl
avg = [10, 20, 25, 5, 32, 7]
wb = openpyxl.load_workbook('output/file_base.xlsx')
ws = wb.active
for row, entry in enumerate(avg, start=20):
ws.cell(row=row, column=4, value=entry)
wb.save('out.xlsx')
这会迭代您的平均值,并使用 Python 的 enumerate
同时为您计数的功能。通过告诉它以值 20 开始,它就可以用作写入单元格的行值。
关于python - Openpyxl:迭代单元格范围,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35956936/