由于要復(fù)制excel 的某些單元格格式,需要對(duì)合并的單元格選出符合條件的
如下例是小于15的保留
然后在新表單中
wbsheet_new.merge_cells(cell2)
wbsheet_new為新表單,cell2為篩選后保留的單元格,表達(dá)為I24:J24,K24:L24這樣的格式
先正則篩選,篩選的結(jié)果為[(‘AO', ‘AP')]這種list包含元組的表達(dá)方式,再用result[0][0]提取出第一個(gè)元素,
如果大于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])
補(bǔ)充:python openpyxl 獲取合并的單元格列表,篩選解除單元格合并
代碼如下:
#獲取該表所有合并單元格信息并遍歷
for i in ws.merged_cell_ranges:
#獲取合并單元格的開始行、列,結(jié)束行、列
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)
以上為個(gè)人經(jīng)驗(yàn),希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教。
您可能感興趣的文章:- Python openpyxl 無法保存文件的解決方案
- python openpyxl 帶格式復(fù)制表格的實(shí)現(xiàn)
- python中openpyxl和xlsxwriter對(duì)Excel的操作方法
- 詳解Python openpyxl庫的基本應(yīng)用
- python openpyxl模塊的使用詳解
- 詳解Python中openpyxl模塊基本用法
- python 使用openpyxl讀取excel數(shù)據(jù)
- 解決python 使用openpyxl讀寫大文件的坑