我有很多方法,但我正在努力提高这段代码的性能。任何替代方案请提出建议。 我正在尝试构建一个代码来删除整个行(如果范围内所有单元格都为空),到目前为止我已经尝试了下面的代码,它工作正常,但性能非常慢
import xlwings as xw
wb=xw.Book("example.xlsb")
del_rng = wb.sheets[1].range("A8:DW91242")
for i in range(del_rng.shape[0],0,-1):
row=del_rng.rows[i-1]
if all(cell.value is None for cell in row):
row.delete()
您将
del_rng
定义为一个非常大的范围,从 A8 到 DW91242 - 远远超过 1100 万个单元格。您可以使用 Sheet.used_range
将 del_rng
自动调整为仅使用的数据,这将显着减少代码需要考虑的单元格数量:
import xlwings as xw
wb=xw.Book("example.xlsb")
del_rng = wb.sheets[1].used_range
for i in range(del_rng.shape[0],0,-1):
row=del_rng.rows[i-1]
if all(cell.value is None for cell in row):
row.delete()