删除现有Excel文件的行

时间:2017-09-28 15:44:25

标签: python python-2.7 xlsx openpyxl delete-row

我目前正在编写一个脚本,它应该通过操作内存中的数据然后保存它来删除现有Excel文件的记录。

我正在做的是创建应该从不同的Excel文件中删除的不同值集(skus)。 大多数脚本已经在运行,“唯一”问题是它的主要功能:删除现有Excel文件的记录。

我尝试过使用openpyxl,但它没有delete_row函数,并且不推荐使用garbage_collect()函数(这可能是我最糟糕的判断)。

我不想做的是用XLRD打开文件并用XLWT编写。另外我不能使用xlwings,因为运行脚本的机器在Linux上运行(win32 COM因同样的原因无效)。而且我不想使用的是Pandas(之前我曾尝试过使用这个模块,但它对我来说太复杂了。)

我知道那些是非常严格的限制,但我仍然希望有办法解决这个问题。

以下是一些代码检查:

    for index, row in enumerate(ws.iter_rows('A{}:A{}'.format(ws.min_row,ws.max_row))): # I thought that I could use the row index to then delete it with it
        for cell in row:
            if cell.value <> header_xlsx:
                if '"' + cell.value + '"' in set:
                    cell.value = '' # This is where I'd like to delete the row
    ws.garbage_collect() # Optional

请注意,我知道整个互联网上有很多类似的问题,但到目前为止(我已经看了很多)我没有找到任何“确定”的解决方案。

非常感谢提前!

1 个答案:

答案 0 :(得分:0)

有一些不受支持的代码。 不支持,我认为它可以大大简化,但应该让您开始使用:

https://bitbucket.org/snippets/openpyxl/qyzKn/sample-code-for-inserting-rows-in-an