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)
以上為個人經驗,希望能給大家一個參考,也希望大家多多支持好吧啦網。如有錯誤或未考慮完全的地方,望不吝賜教。
相關文章:
