Python for循环使用openpyxl

我正在使用openpyxl软件包来制作一个简单的工具,它将用来处理大型电子表格的excelinput,并使更小的更可用的input。 我曾尝试使用这种逻辑的许多不同types的循环,但我仍然无法得到它的工作。 目标是find任何值为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 

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

 print(separated['A2'].value) 

通过打印“无”来打印单元格中没有当前值。 再次,我已经尝试了两个或三个不同for循环这个逻辑,而他们都运行没有错误,似乎没有任何改变“分离”工作表中的任何值。 任何和所有的帮助表示赞赏。

代码中有几个错误。 由于range(0, 0)为空range(0, 0)因此内部循环将永远不会运行。 而且,openpyxl使用1-indexing: A1 == cell(row=1, column=1)所以ws.cell(row=0, column=0)会在执行时引发exception。

但是,您应该使用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") 

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

祝你好运