簡體   English   中英

如果滿足條件,如何使用 openpyxl python 刪除 excel 中的特定行

[英]How to delete specific rows in excel with openpyxl python if condition is met

使用 openpyxl 我正在創建 python 腳本,該腳本將遍歷數據行並查找其中某些列為空的行 - 這些將被刪除。 行的范圍是 3 到 1800。

我不確定如何刪除這些行 - 請參閱我到目前為止提出的代碼。 我試圖實現的是遍歷行並檢查第 4、7 列的值是否設置為無。 如果為真,我想將行號返回到合適的集合中(需要建議哪一個最適合這個),然后創建另一個循環來刪除特定的行號,因為我不想通過刪除行來更改文件的結構數據。

我相信 function 可能更容易做到這一點,但找不到這個特定的答案。

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)的操作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM