使用 Python 2.7 和 openpyxl 删除 Excel 中的单元格

Posted

技术标签:

【中文标题】使用 Python 2.7 和 openpyxl 删除 Excel 中的单元格【英文标题】:Delete cells in Excel using Python 2.7 and openpyxl 【发布时间】:2015-01-31 07:02:26 【问题描述】:

我正在尝试使用 openpyxl 从 Excel 电子表格中删除单元格。这似乎是一个非常基本的命令,但我环顾四周,不知道该怎么做。我可以将它们的值设置为无,但它们仍然作为空单元格存在。 worksheet.garbage_collect() 抛出一个错误,指出它已被弃用。我正在使用最新版本的 openpyxl。有什么方法可以删除一个空单元格(就像在 Excel 中所做的那样),还是我必须手动向上移动所有单元格?谢谢。

【问题讨论】:

空单元格有什么问题? @CharlieClark - 我在 Excel 工作表的开头有几行空单元格,所以当我打开它时,我必须向下滚动才能找到数据。如果我只处理一张纸,问题不大,但几百张...... 【参考方案1】:

在 openpyxl 中,单元格单独存储在字典中。这使得删除或添加列或行等聚合操作变得困难,因为代码必须处理大量单个单元格。但是,即使移动到表格或矩阵实现也很棘手,因为每个单元格的坐标都存储在每个单元格上,这意味着您已经处理了插入或删除单元格右侧和下方的所有单元格。这就是为什么我们还没有为此添加任何便利方法的原因,因为它们可能非常非常慢,我们不想为此负责。

希望在未来的版本中转向矩阵实现,但仍有单元坐标问题需要处理。

【讨论】:

感谢您的回复,查理。非常感谢你们为此所做的所有工作!

以上是关于使用 Python 2.7 和 openpyxl 删除 Excel 中的单元格的主要内容,如果未能解决你的问题,请参考以下文章

Python:openpyxl这一篇就够了

Python3 读取和写入excel xlsx文件 使用openpyxl

Python使用openpyxl库修改和合并Excel文档

有没有办法同时使用 Openpyxl 和 Seaborn? (Python)

在Python和openpyxl中使用小时和分钟-Excel格式与字符串和整数

python操作excel----openpyxl模块