Openpyxl删除单元格

我想select列表的最后20项复制一个新的电子表格,一旦复制,我想从第一个电子表格中delete它们。

我有第一部分去(复制最后20),但我不知道如何delete该单元格,所以它不会显示为none后,我保存它。

过滤= [ – 20:]我如何从电子表格中删除这20个单元格?

 def cell_values(somesheet): # extract the last 20 items from the worksheet filtered = [x for x in somesheet.rows if x is not None] last20 = filtered[-20:] extracted_values = [] for row in last20: for cell in row: # print cell.value extracted_values.append(cell.value) 

问题是, filtered = [x for x in sheet.rows if x is not None] ,那么filtered = [x for x in sheet.rows if x is not None]不起作用,实际上将None项添加到filtered列表

我怎么能确保它只挑选最后20个不是none项目? 以及一旦我从列表中select它们就删除它们

[x for x in somesheet.rows if x is not None]将返回行列表,因为ws.rows返回行列表。

目前没有办法从工作表中删除单元格。 最好的办法是将它们的值设置为None。 除非他们有特殊的格式,否则当文件被保存时,他们将从工作表中删除。 调用ws.garbage_collect()已被弃用,因为它没有任何意义。