使用openpyxl跨工作表追加数据时输出异常的问题排查
问题根源
你代码里的行号计算完全错了:
iter_rows(min_row=5)是从第5行开始遍历,但循环里的i是从0开始的索引,你用i+1当行号去取第一列值,实际拿的是第1、2、3...行的内容,根本不是当前正在遍历的行。这就导致判断条件完全跑偏,自然漏取目标行、误抓无关行。
修正代码
LU = "Gilford" # 直接从遍历的行里取第一列的值做判断,不用再额外查行号 for row in sourcews2.iter_rows(min_row=5, min_col=1, max_col=33): if row[0].value == LU: destinationws.append([cell.value for cell in row])
额外说明
要是你非得保留enumerate的索引,行号得这么算:5 + i(因为min_row是5,i从0开始),但完全没必要多此一举,直接从当前row里拿第一列的cell值最靠谱。原代码里sourcews2.cell(row=i+1, column=1)完全脱离了遍历的行范围,才会搞出取到Gray行的乌龙。
内容的提问来源于stack exchange,提问作者S. Price
相关产品推荐
相关产品推荐

