Python openpyxl筛选特定列及合并单元格处理

周末不加班
周末不加班
发布时间:2026-10-14| 5人浏览过
原创

本文介绍如何使用Python openpyxl库筛选Excel中符合条件的列并处理合并单元格。通过正则表达式解析单元格范围,利用column_index_from_string判断列索引是否大于15以决定是否保留,并将筛选后的单元格在新表单中重新合并。

由于需要复制Excel中部分单元格的格式,因此需对合并单元格进行筛选,以选出符合特定条件的单元格。

例如,保留数值小于15的列。

随后在新建的工作表中执行相关操作。


wbsheet_new.merge_cells(cell2)

其中,表示新工作表,[[wp:cell2]]为筛选后保留的单元格,其格式类似于[[wp:I24:J24]]或[[wp:K24:L24]]。

首先使用正则表达式进行筛选,结果形式为包含元组的列表,如[[wp:[('AO', 'AP')]]]。接着通过[[wp:result[0][0]]]提取第一个元素。

若列索引大于15。


column_index_from_string(result[0][0])>=15 

则将该列去除,其余列予以保留。


from openpyxl.utils import get_column_letter, column_index_from_string
import re
s=['AK23:AL23',
'AM23:AN23',
'AO23:AP23',
'AQ23:AR23',
'B24:C24',
'D24:F24',
'G24:H24',
'I24:J24',
'K24:L24',
'M24:N24',
'Q24:R24',
'S24:U24',
'V24:W24',
'X24:Y24',
'Z24:AA24',
'AB24:AC24',
'AF24:AG24',
'AH24:AJ24',
'AK24:AL24',
'AM24:AN24',
'AO24:AP24',]
for si in s:
 result=re._compile(r'(\w+?)\d+:(\w+?)\d+',flags=0).findall(si)
 print (result)
 if column_index_from_string(result[0][0])>=15:
 print('去掉%s'%result[0][0])

补充说明:在Python openpyxl中获取合并单元格列表,并筛选以解除单元格合并状态。

具体代码如下:


#获取该表所有合并单元格信息并遍历
    for i in ws.merged_cell_ranges:
      #获取合并单元格的开始行、列,结束行、列
      r1, r2, c1, c2 = i.min_row, i.max_row, i.min_col, i.max_col
      #解除合并
      ws2.unmerge_cells(start_row = r1, end_row = r2, start_column = c1, end_column = c2)

以上为个人经验分享,旨在提供参考。如有错误或未考虑周全之处,欢迎指正。

相关标签:

免责声明:本文内容仅供参考,不代表本站观点。转载或引用请注明出处。

Python 相关产品和应用

全部下载
Selenium

Selenium

4.51.0 · Windows

用于浏览器自动化和 Web 测试的 Python 工具。

scikit-learn

scikit-learn

1.9.1 · Windows

常用 Python 机器学习算法与模型评估工具库。

Black

Black

26.10.1 · Windows

强调一致性的 Python 自动代码格式化工具。

Ruff

Ruff

0.17.1 · macOS

由 Rust 编写的高速 Python 代码检查和格式化工具。

pytest

pytest

9.1.1 · Windows

简洁而强大的 Python 自动化测试框架。

FastAPI

FastAPI

0.146.0 · Windows

高性能 Python API 框架,支持类型提示和自动接口文档。

Flask

Flask

3.1.3 · Windows

轻量灵活的 Python Web 应用框架。

Django

Django

6.1.2 · Windows

成熟的 Python Web 框架,适合构建内容站点和业务系统。

Spyder

Spyder

6.1.7 · Windows

面向科学计算与数据分析的 Python 集成开发环境。

SciPy

SciPy

1.18.1 · Windows

面向科学、工程和技术计算的 Python 算法库。