python openpyxl筛选某些列的操作
程序员文章站
2022-07-08 17:46:35
由于要复制excel 的某些单元格格式,需要对合并的单元格选出符合条件的如下例是小于15的保留然后在新表单中wbsheet_new.merge_cells(cell2)wbsheet_new为新表单,...
由于要复制excel 的某些单元格格式,需要对合并的单元格选出符合条件的
如下例是小于15的保留
然后在新表单中
wbsheet_new.merge_cells(cell2)
wbsheet_new为新表单,cell2为筛选后保留的单元格,表达为i24:j24,k24:l24这样的格式
先正则筛选,筛选的结果为[(‘ao', ‘ap')]这种list包含元组的表达方式,再用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中用drop函数删除某列或者某行的操作教程
-
python 筛选数据集中列中value长度大于20的数据集方法
-
python3读取excel文件只提取某些行某些列的值方法
-
python操作excel的包(openpyxl、xlsxwriter)
-
Python操作excel的方法总结(xlrd、xlwt、openpyxl)
-
python操作xlsx文件的包openpyxl实例
-
python3结合openpyxl库实现excel操作的实例代码
-
使用Python的openpyxl包操作Excel文件
-
python:按列条件筛选、删除DataFrame中满足列条件的行
-
某些列满足特定条件,然后改变另外的某些列的值(Python)