Python實現同時合併Excel中多列單元格,附源碼

在日常測試開發中,偶爾會遇到Excel的相關操作,其中合併Excel單元格是一個相對來說比較麻煩的操作,本文主要分享如何通過

Python實現Excel中多列單元格的合併

Excel 示例

如下"軟件測試開發技術棧.xlsx"文件,圖中"今天又是美好一天"Sheet頁 的"A、B、C、D"四列均存在重複的數據,為了提高瀏覽體驗,通常我們需要進行單元格的合併操作。

Python實現同時合併Excel中多列單元格,附源碼

Python 源碼

直奔主題,分享下 Python源碼,主要通過 openpyxl 實現單元格的合併,代碼如下 :

<code> 
 
from openpyxl import load_workbook

def merge_excel(sheet_name, merge_col, file_path='demo.xlsx'):
    """
    支持合併Excel多列數據
    """

    def merge_cells(ws, target_list, start_row, col):
        """
        ws: 工作表
        target_list: 目標列數據,即含有重複數據的列表
        start_row: 起始行,即工作表中開始比對數據的行(需要將標題除開)
        col: 目標列索引
        '''
        """
         
        

start

=

0

               

end

=

0

               

reference

= target_list[

0

]                

for

i

in

range

(

len

(target_list)):                        

if

target_list[i] !=

reference

:                                

reference

= target_list[i]                                

end

= i -

1

               ws.merge_cells(

col

+

str

(

start

+ start_row) +

":"

+

col

+

str

(

end

+ start_row))                

start

=

end

+

1

                       

if

i ==

len

(target_list) -

1

:                

end

= i                ws.merge_cells(

col

+

str

(

start

+ start_row) +

":"

+

col

+

str

(

end

+ start_row))    wb = load_workbook(file_path)        

if

sheet_name

in

wb.sheetnames:        ws = wb[sheet_name]        col_index =

list

(merge_col)        

for

index

in

col_index:            _value_list = []            

for

row

in

range

(

1

, ws.max_row +

1

):                _value = ws[

index

+

str

(

row

)].value                _value_list.append(_value)                        start_row =

1

                       merge_cells(ws, _value_list, start_row,

index

)        wb.save(file_path)  

if

__name__ ==

'__main__'

: merge_excel(

"今天又是美好的一天"

,

"ABCD"

,

"軟件測試開發技術棧.xlsx"

) /<code>


效果示例

通過運行上述代碼,我們合併"今天又是美好一天"Sheet頁 的"A、B、C、D"四列數據,實際合併效果如下:

Python實現同時合併Excel中多列單元格,附源碼

專欄

每天八分鐘Python基礎編程

作者:軟件測試開發技術棧

69.9幣

120人已購

查看


分享到:


相關文章: