python - 如果满足条件,如何使用 openpyxl python 删除 Excel 中的特定行

标签 python indexing conditional-statements rows openpyxl

使用 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/

相关文章:

java - Android 菜单膨胀错误之前的条件检查

python - 从 resources.qrc 文件创建 QIcon

python - 如何防止 perfplot (matplotlib) 图形标签被截断?

python - 在单元测试 CI 期间模拟单击 PyQt5 QMessageBox 小部件中的按钮

sql - 我应该将选择中的所有列包含在索引中吗?

mysql - 根据条件垂直拆分表

python - conda 错误: No writable package cache directories found in conda-pkgs

postgresql - 找到最近的稀疏向量,使用什么样的索引或数据库?

sql - 多列索引效率

python - 评估复杂的条件Python