Python轻松实现删除Excel工作表中的空白行列

 更新时间:2025年09月19日 08:18:49   作者:用户835629078051  
在处理 Excel 数据时,空白行和空白列常常会影响数据分析,本文将介绍如何使用 Python 对 Excel 工作表中的空白行和列进行删除,感兴趣的小伙伴可以了解下

在处理 Excel 数据时,空白行和空白列常常会影响数据分析、统计计算以及图表生成的效果。因此,在数据清理阶段,删除空白行列是一个常见且必要的操作。本文将介绍如何使用 Python 对 Excel 工作表中的空白行和列进行删除,示例中使用的是 Spire.XLS for Python,它提供了高效、稳定的 Excel 文件操作功能。

一、准备工作

首先,需要安装 Spire.XLS for Python。如果尚未安装,可通过以下命令进行安装:

pip install spire.xls

然后导入所需模块,并加载 Excel 文件:

from spire.xls import Workbook

# 创建工作簿对象
workbook = Workbook()
# 加载已有 Excel 文件
workbook.LoadFromFile("sample.xlsx")
# 选择第一个工作表
sheet = workbook.Worksheets[0]

到此,工作簿和工作表已经准备好,可以开始对空白行列进行操作。

二、删除空白行

空白行通常指整行单元格都没有内容的行。删除空白行的思路是:从下往上遍历每一行,判断该行是否全部为空,如果为空则删除该行。逆序遍历是为了避免删除行后导致的索引错位问题。

示例代码如下:

# 获取行数
row_count = sheet.LastRow

# 从最后一行开始向上遍历
for row in range(row_count, 0, -1):
    is_empty = True
    for col in range(1, sheet.LastColumn + 1):
        if sheet.Range[row, col].Value is not None and sheet.Range[row, col].Value != "":
            is_empty = False
            break
    if is_empty:
        sheet.DeleteRow(row)

# 保存修改后的文件
workbook.SaveToFile("cleaned.xlsx")

上述代码逻辑:

  • sheet.LastRow 获取工作表的最后一行索引。
  • 遍历每一行的每个单元格,如果存在非空值,则该行不为空。
  • 若整行为空,则调用 sheet.DeleteRow(row) 删除该行。

三、删除空白列

空白列的处理逻辑与空白行类似:判断整列单元格是否为空,若为空则删除。由于删除列会改变列索引,同样需要从最后一列开始向前遍历。

示例代码如下:

# 获取列数
col_count = sheet.LastColumn

# 从最后一列开始向前遍历
for col in range(col_count, 0, -1):
    is_empty = True
    for row in range(1, sheet.LastRow + 1):
        if sheet.Range[row, col].Value is not None and sheet.Range[row, col].Value != "":
            is_empty = False
            break
    if is_empty:
        sheet.DeleteColumn(col)

# 保存修改后的文件
workbook.SaveToFile("cleaned.xlsx")

这里:

  • sheet.LastColumn 获取工作表的最后一列索引。
  • 对每列的每个单元格进行检查,如果发现非空单元格,则标记该列不为空。
  • 若整列为空,则删除该列。

四、批量处理多张工作表

在实际工作中,一个 Excel 文件可能包含多张工作表。为了保证清理工作覆盖所有工作表,可以使用循环处理每个工作表:

for sheet in workbook.Worksheets:
    # 删除空白行
    for row in range(sheet.LastRow, 0, -1):
        if all(sheet.Range[row, col].Value in (None, "") for col in range(1, sheet.LastColumn + 1)):
            sheet.DeleteRow(row)

    # 删除空白列
    for col in range(sheet.LastColumn, 0, -1):
        if all(sheet.Range[row, col].Value in (None, "") for row in range(1, sheet.LastRow + 1)):
            sheet.DeleteColumn(col)

workbook.SaveToFile("cleaned_all_sheets.xlsx")

这样可以确保每张工作表的空白行列都被清理干净,提高数据质量。

五、优化提示

  • 避免重复保存:在大文件处理时,建议先完成所有删除操作,再统一保存,以提高性能。
  • 注意公式与格式:删除行列可能影响公式引用和格式,需要根据实际情况调整公式或格式。
  • 空白定义:示例中空白指单元格值为 None 或空字符串。如果单元格包含空格,也可根据需要使用 strip() 方法判断。
if sheet.Range[row, col].Value and sheet.Range[row, col].Value.strip() != "":
    is_empty = False

六、总结

本文介绍了使用 Python 删除 Excel 工作表中空白行和空白列的常用方法,包括单表和多表处理。通过遍历单元格判断空白,并从后向前删除,可以有效避免索引问题。同时也提供了优化建议,使处理过程更安全高效。掌握这一技巧,可以为后续数据分析、报表生成和图表绘制提供干净、规范的数据源。

到此这篇关于Python轻松实现删除Excel工作表中的空白行列的文章就介绍到这了,更多相关Python删除Excel空白行列内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Python使用sftp实现上传和下载功能(实例代码)

    Python使用sftp实现上传和下载功能(实例代码)

    在Python中可以使用paramiko模块中的sftp登陆远程主机,实现上传和下载功能。接下来通过本文给大家介绍Python使用sftp实现上传和下载功能,需要的朋友参考下
    2017-03-03
  • Pytorch的mean和std调查实例

    Pytorch的mean和std调查实例

    今天小编就为大家分享一篇Pytorch的mean和std调查实例,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-01-01
  • python使用time、datetime返回工作日列表实例代码

    python使用time、datetime返回工作日列表实例代码

    这篇文章主要介绍了python使用time、datetime返回工作日列表,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • python+ffmpeg视频并发直播压力测试

    python+ffmpeg视频并发直播压力测试

    这篇文章主要为大家详细介绍了python+ffmpeg视频并发直播压力测试,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-03-03
  • 深入理解Python密码学之使用PyCrypto库进行加密和解密

    深入理解Python密码学之使用PyCrypto库进行加密和解密

    Python中的Pycrypto库是一个广泛使用的密码学工具包,它为开发者提供了多种加密算法,包括著名的RSA加密算法,这篇文章主要给大家介绍了关于Python密码学之使用PyCrypto库进行加密和解密的相关资料,需要的朋友可以参考下
    2024-07-07
  • 机器学习经典算法-logistic回归代码详解

    机器学习经典算法-logistic回归代码详解

    这篇文章主要介绍了机器学习经典算法-logistic回归代码详解,具有一定借鉴价值,需要的朋友可以参考下。
    2017-12-12
  • colab中修改python版本的全过程

    colab中修改python版本的全过程

    日 对于没有服务器的研究生来说,Colab无疑是性价比最高的GPU选择,下面这篇文章主要给大家介绍了关于如何利用colab修改python版本的相关资料,需要的朋友可以参考下
    2022-04-04
  • Python+PyQt5设计实现一个C++源代码行数统计工具

    Python+PyQt5设计实现一个C++源代码行数统计工具

    在软件开发过程中,代码行数是一个基础但重要的软件度量指标,本文介绍一个基于PyQt5的图形化C++源代码行数统计工具,感兴趣的小伙伴可以了解下
    2025-10-10
  • wxPython实现整点报时

    wxPython实现整点报时

    这篇文章主要为大家详细介绍了wxPython实现整点报时,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-11-11
  • 基于python goto的正确用法说明

    基于python goto的正确用法说明

    这篇文章主要介绍了基于python goto的正确用法说明,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2021-03-03

最新评论