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
则去掉,其余保留
fromopenpyxl.utilsimportget_column_letter,column_index_from_string
importre
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',]
forsiins:
result=re._compile(r'(\w+?)\d+:(\w+?)\d+',flags=0).findall(si)
print(result)
ifcolumn_index_from_string(result[0][0])>=15:
print('去掉%s'%result[0][0])
补充:pythonopenpyxl获取合并的单元格列表,筛选解除单元格合并
代码如下:
#获取该表所有合并单元格信息并遍历 foriinws.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)
以上为个人经验,希望能给大家一个参考,也希望大家多多支持毛票票。如有错误或未考虑完全的地方,望不吝赐教。
声明:本文内容来源于网络,版权归原作者所有,内容由互联网用户自发贡献自行上传,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任。如果您发现有涉嫌版权的内容,欢迎发送邮件至:czq8825#qq.com(发邮件时,请将#更换为@)进行举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。