Python 使用 openpyxl 进行循环

Python for loop using openpyxl

我正在使用 openpyxl 包制作一个简单的工具,该工具将用于获取 excel 大型电子表格的输入并制作更小的更有用的电子表格。我已经尝试使用许多不同类型的循环来实现这个逻辑,但我仍然无法让它工作。 objective 是找到任何值为 1 的单元格,并将其旁边的单元格直接复制到新工作簿中。这是我的代码:

# for loop data logic
data = default['Default']
n = 1
for i in range(0,1000):
    for j in range(0,0):
        ds = data.cell(row = i, column = j)               
        if  ds == 1:
            n = n + 1
            ds.cell(row = i, column = 0).value = separated.cell(row = n, column = 0).value

注意:我输入的数据有许多单元格的第一列中的数值为 1。这是此循环正在测试的一列。我一直在用一个简单的打印命令测试代码:

print(separated['A2'].value)

通过打印 "None." 再次显示单元格中没有现值,我已经为这个逻辑尝试了两个或三个不同的 for 循环,虽然它们都有 运行 没有错误,none 似乎更改了 "separated" 工作表中的任何值。任何和所有的帮助表示赞赏。

代码中有几处错误。内循环永远不会 运行 因为 range(0, 0) 是空的。此外,openpyxl 使用 1-indexing:A1 == cell(row=1, column=1) 所以 ws.cell(row=0, column=0) 如果执行过会引发异常。

但是,您可能应该只使用 ws.get_squared_range(min_col, min_row, max_col, max_row) 来获取要查看的单元格的生成器。

我想你可以像这样扫描,扫描值或文本。 示例:

for col in sheet['A1:B100']:

        for cell in col:

            if cell.value == '1':

                print("Lo halle")   

然后您继续复制新工作簿中的信息。

祝你好运