每次循环增加一次

时间:2016-06-17 17:38:18

标签: python excel loops openpyxl

每次循环遍历所有纸张时,如何使单元格数增加1?我让它循环遍历不同的工作表本身,但我不确定如何为单元格值添加+1。

for sheet in sheetlist:
        wsX = wb.get_sheet_by_name('{}'.format(sheet))

        ws2['D4'] = wsX['P6'].value

我试图让['D4']自动更改为D5,D6,D7 ......等等。

4 个答案:

答案 0 :(得分:2)

不需要计数器或笨拙的字符串转换:openpyxl提供了一个用于编程访问的API。

for idx, sheet in enumerate(sheetlist, start=4):
   wsX = wb[sheet]
   cell = ws2.cell(row=idx, column=16)
   cell.value = wsX['P6']

答案 1 :(得分:1)

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

答案 2 :(得分:0)

在循环之外写下这个:

x = 'D4'

在循环中写下这个:

x = x[0] + str(int(x[1:])+1)

答案 3 :(得分:0)

试试这个...它已被评论,以便您了解它正在做什么。

#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