Openpyxl删除细胞

时间:2015-08-11 00:16:29

标签: python excel openpyxl

我想选择列表中的最后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的项目? 我从列表中选择它们后删除它们

1 个答案:

答案 0 :(得分:2)

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

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