我试图根据行号使用openpyxl格式化行。这是我的尝试:
for row in ws2.iter_rows(min_row=3, min_col=3, max_col=26):
if ((row-3)//4)+1 % 2 == 0:
for cell in row:
cell.fill = PatternFill(bgColor="A0ACEA", fill_type="solid")
else:
for cell in row:
cell.fill = PatternFill(bgColor="D3D7F0", fill_type="solid")我得到了以下错误。我明白这意味着什么,但我不知道如何解决。
if ((row-3)//4)+1 % 2 == 0:
TypeError: unsupported operand type(s) for -: 'tuple' and 'int'发布于 2021-04-28 19:01:33
在第一个for循环中得到的每一行都是元组,而不是int。当您尝试row-3时,您将得到一个错误,因为您不能用元组和整数进行算术。
您得到的是行本身,而不是行的索引。这正是enumerate的作用所在。
试试这个:
for i, row in enumerate(ws2.iter_rows(min_row=3, min_col=3, max_col=26)):
if ((i-3)//4)+1 % 2 == 0:https://stackoverflow.com/questions/67306317
复制相似问题