这篇教程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_stringimport res=['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) 以上为个人经验,希望能给大家一个参考,也希望大家多多支持51zixue.net。如有错误或未考虑完全的地方,望不吝赐教。 python无法识别vim中文代码的解决方案 python openpyxl 带格式复制表格的实现 |