使用 openpyxl 我正在创建 python 脚本,它将循环遍历数据行并查找其中某些列为空的行 - 这些将被删除。行数范围为 3 至 1800。
我不太确定如何删除这些行 - 请参阅我到目前为止提出的代码。 我想要实现的是迭代行并检查第 4、7 列值是否设置为“无”。如果为 True,我想将行号返回到合适的集合中(需要建议哪一个最适合此操作),然后创建另一个循环来删除反向的特定行号,因为我不想通过删除行来更改文件的结构数据。
我相信可能有更简单的函数可以做到这一点,但找不到这个特定的答案。
for i in worksheet.iter_rows(min_row=3, max_row=1800):
emp_id = i[4]
full_name = i[7]
if emp_id.value == None and full_name.value == None:
print(worksheet[i].rows)
rows_to_delete.append(i)
最佳答案
您的迭代看起来不错。
OpenPyXl 提供 worksheet.delete_rows(idx, amt=1)
,其中 idx
是要删除的第一行的索引(从 1 开始),amt
是要删除的超出该索引的行数。
因此 worksheet.delete_rows(3, 4)
将删除第 3、4、5 和 6 行,而 worksheet.delete_rows(2, 1)
将仅删除行2.
就您而言,您可能想要执行类似 worksheet.delete_rows(i, 1)
的操作。
关于python - 如果满足条件,如何使用 openpyxl python 删除 Excel 中的特定行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/63146453/