【问题标题】:Increment by one everytime loop runs每次循环运行时递增一
【发布时间】:2016-06-17 17:38:17
【问题描述】:
每次循环遍历所有工作表时,如何使单元格数量增加一?我让它循环遍历不同的工作表,但我不确定如何将 +1 添加到单元格值。
for sheet in sheetlist:
wsX = wb.get_sheet_by_name('{}'.format(sheet))
ws2['D4'] = wsX['P6'].value
我正试图让['D4'] 自动更改为 D5、D6、D7.. 等最多 25 个。
【问题讨论】:
标签:
python
excel
loops
openpyxl
【解决方案1】:
无需计数器或笨拙的字符串转换:openpyxl 提供了用于编程访问的 API。
for idx, sheet in enumerate(sheetlist, start=4):
wsX = wb[sheet]
cell = ws2.cell(row=idx, column=16)
cell.value = wsX['P6']
【解决方案2】:
for i, sheet in enumerate(sheetlist):
wsX = wb.get_sheet_by_name('{}'.format(sheet))
cell_no = 'D' + str(i + 4)
ws2[cell_no] = wsX['P6'].value
【解决方案3】:
在循环之外写这个:
x = 'D4'
在循环中写这个:
x = x[0] + str(int(x[1:])+1)
【解决方案4】:
试试这个...它已被注释,以便您了解它在做什么。
#counter
i = 4
for sheet in sheetlist:
#looping from D4 to D25
while i <= 25:
wsX = wb.get_sheet_by_name('{}'.format(sheet))
#dynamic way to get the cell
cell1 = 'D' + str(i)
ws2[cell1] = wsX['P6'].value
#incrementing counter
i += 1