如何使用 openpyxl 删除任何工作表(可能有任意数量的行)中的最后五行?
How do you delete the last five rows in any worksheet (that could have any number of rows) with openpyxl?
所以我当然可以删除最后一行,如果我用这个指定的话:
ws2.delete_rows(42)
但是,如果可能有任意数量的行,我该如何删除任何给定工作表中的最后五行?我应该确定 max_row 然后以某种方式循环删除五次吗?或者有别的办法吗?
我可以 运行 这五次来删除最后五行,但是有没有办法在不重复命令的情况下做到这一点?
mr = ws2.max_row
ws2.delete_rows(mr)
将其包装在 for 循环中:
for _ in range(5):
mr = ws2.max_row
ws2.delete_rows(mr)
或者:
for i in reversed(range(ws2.max_row - 4, ws2.max_row + 1)):
ws2.delete_rows(i)
在范围顶部加一,使 max_row
包含在范围内,然后反转范围,因此我们从最后一行开始。
delete_rows
和 delete_columns
方法采用索引和可选数量的项目。所以 ws.delete_rows(ws.max_row-5, 5)
应该做你想做的事。
所以我当然可以删除最后一行,如果我用这个指定的话:
ws2.delete_rows(42)
但是,如果可能有任意数量的行,我该如何删除任何给定工作表中的最后五行?我应该确定 max_row 然后以某种方式循环删除五次吗?或者有别的办法吗?
我可以 运行 这五次来删除最后五行,但是有没有办法在不重复命令的情况下做到这一点?
mr = ws2.max_row
ws2.delete_rows(mr)
将其包装在 for 循环中:
for _ in range(5):
mr = ws2.max_row
ws2.delete_rows(mr)
或者:
for i in reversed(range(ws2.max_row - 4, ws2.max_row + 1)):
ws2.delete_rows(i)
在范围顶部加一,使 max_row
包含在范围内,然后反转范围,因此我们从最后一行开始。
delete_rows
和 delete_columns
方法采用索引和可选数量的项目。所以 ws.delete_rows(ws.max_row-5, 5)
应该做你想做的事。