Python迭代逻辑:在openpyxl

时间:2016-12-02 18:25:04

标签: python loops openpyxl

我无法将逻辑包裹在我的头脑中。有人可以提出解决方案。

我在工作表0的行A中有一个包含10000个项目的Excel文件 我想迭代行,但是在200组中。 这是我的干算法,我似乎无法将其写入代码:

  1. 读取excel文件,workheet0作为源

  2. 使用openpyxl创建一个空的Excel工作表,工作表1

  3. 从源工作表0迭代A列中总数为10000的前200个字符串项

  4. 一个。 strip()每个字符串项 湾在工作表1 columnA,row1:row200

    中保存“已剥离”的新字符串
    1. 创建一个新的空工作表,工作表2
    2. 遍历workheet0 row201:400中的下两个字符串项 一个。跳闸() 湾保存在工作表2中
    3. 重复创建新工作表,剥离并保存每个200

      组的新工作表

      我无法让算法迭代200个组,每个新组都会创建一个新的工作表文件。任何人都可以帮助算法吗?

      # rowMax is the last row in columnA aka the length of my list to iterate over
      
      for count in range(1, int(rowMax/200)):
          _=wb.create_sheet(str(count))
          for row in range(count*2, 200*count):
              targetEmail = str(ws1.cell(column=1, row=row).value).strip()
              sourceEmail = str(ws1.cell(column=1, row=row).value)
              if targetEmail != sourceEmail:
                  print("Correction required for: ", sourceEmail, "\nChanged to: ", targetEmail)
      
              _.cell(column=1, row=row).value = targetEmail 
      

      以上不起作用。我只是把它放在那里,所以你了解我创建一个新的工作表,然后保存新的工作表中的下200个项目,然后为每个200项目块重复此过程每<200个项目

1 个答案:

答案 0 :(得分:1)

这个问题太宽泛了。您需要提供更多代码,并更具体地说明您希望解决的问题。

以下内容可以帮助您开始。

colA = ws1['A']
for idx, cell in colA:
    if not idx % 200:
        ws2 = wb.create_sheet()
    ws2.append(cell.value.strip())