python openpyxl筛选列 python openpyxl筛选某些列的操作
weixin_45903952 人气:0想了解python openpyxl筛选某些列的操作的相关内容吗,weixin_45903952在本文为您仔细讲解python openpyxl筛选列的相关知识和一些Code实例,欢迎阅读和指正,我们先划重点:python,openpyxl,筛选列,下面大家一起来学习吧。
由于要复制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)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持。如有错误或未考虑完全的地方,望不吝赐教。
加载全部内容