Openpyxl删除单元格

Openpyxl deleting cells

我想选择列表的最后 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] 不工作,实际上将 None 项添加到 filtered 列表

我如何确保它只挑选最后 20 个不是 none 的项目? 以及在我从列表中选择它们后删除它们

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

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