【问题标题】: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
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-02-29
          • 2023-03-11
          • 2022-12-08
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-06-28
          相关资源
          最近更新 更多