Openpyxl删除单元格

2024-05-13 19:31:34 发布

您现在位置:Python中文网/ 问答频道 /正文

我想选择列表的最后一个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的项目? 一旦我从名单上选出来就把它们删除


Tags: theinnone列表forifiscell
1条回答
网友
1楼 · 发布于 2024-05-13 19:31:34

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

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

相关问题 更多 >