Python 迭代逻辑:在 openpyxl 中以 200 为一组迭代列表

Python iteration logic: iterate over a list in groups of 200 in openpyxl

我无法将逻辑环绕在脑海中。有人可以提出解决方案。

我有一个 excel 文件,工作表 0 的 A 行有 10000 个项目 我想遍历行,但以 200 为一组。 这是我似乎无法放入代码中的干算法:

  1. 读取一个 excel 文件,工作表 0 作为源

  2. 使用 openpyxl 创建一个空的 excel 工作表,worksheet1

  3. 从源工作表 0

  4. 迭代 A 列中总计 10000 的前 200 个字符串项

一个。 strip() 每个字符串项 b.在 worksheet1 columnA 中保存 'stripped' 个新字符串,row1:row200

  1. 创建一个新的空工作表 worksheet2
  2. 迭代工作表 0 中接下来的 200 个字符串项 row201:400 一个。跳闸() b.保存在工作表 2

重复创建新工作表,为每组 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 个项目块重复这个过程

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

像下面这样的东西应该可以帮助你开始。

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