0
点赞
收藏
分享

微信扫一扫

Python记录(1)-Python合并单元格

互联网码农 2022-03-13 阅读 100
python

       因为工作经常遭遇繁重的重复工作,不想将时间花在没有价值的加班上,开始接触Python,很遗憾只能通过网络,书籍等途径自己学习,虽然Python很多人都说很简单,但是对于我这种程序小白来说依然没那么轻松,好的是已经可以让程序来对我的工作改进很多,有时候真的不得不让人惊叹计算机程序的力量是人力远远不及的,来分享一个人力与程序天然差异的小例子。

真实场景:

       某天接到领导任务,因为需要上传资料进某个固定的系统,可是系统需要特定的格式,前面7列需要根据第1列的内容合并单元格,意思是说第1列有相同内容,就需要合并,后面6列跟随第1列的格式合并。面对将近1万笔的资料想不到通过excel如何办到,手动也太难,没办法就尝试Python。

原始表格长这样:

订单编号产品编号产出单位生产日期年份季节数据IDAAAAAA
090191GG001GACD7135329Pieces31-01-20222021Q1/Q26255VNRPE
090191GG001GACD7135329Pieces31-01-20222021Q1/Q270016A344
090191GG001GACD7135329Pieces31-01-20222021Q1/Q27001CA353
1002XPGGACDA6466330Pieces15-01-20222022Q1/Q2600321121
1002XPGGACDA6466330Pieces15-01-20222022Q1/Q26255BXCZT
1002XPGGACDA6466330Pieces15-01-20222022Q1/Q270011VUMC
1002XPGGACDA6466330Pieces15-01-20222022Q3/Q470011VUMC
1002XPGG002ACDD4489311Pieces15-01-20222022Q3/Q4600321121
1002XPGG002ACDD4489311Pieces15-01-20222022Q1/Q26255BXCZT
1002XPGG002ACDD4489311Pieces15-01-20222022Q1/Q270011VUMC
1002XPGG002ACDD4489311Pieces15-01-20222022Q1/Q270011VUMC
1002XPGG00XACDD4493306Pieces15-01-20222022Q3/Q4600321121
1002XPGG00XACDD4493306Pieces30-01-20222022Q3/Q46255BXCZT
1002XPGG00XACDD4493306Pieces30-01-20222022Q1/Q270011VUMC

很小的代码如下,程序很简单,没有加注释,总共只有17行,很容易可以看懂:

import os
import openpyxl

wb = openpyxl.load_workbook(r'C:\Users\ceg03\Desktop\需要处理的文件名称.xlsx') 
ws = wb.worksheets[0]
maxrow = ws.max_row                                 

for j in range(maxrow,1,-1):                        
    k = j-1                                         
    flag = True 
    while flag:                                       
        if ws.cell(j,1).value == ws.cell(k,1).value:   
            k-=1                                       
        else:                                         
            for i in range(1,8):                       
                ws.merge_cells(start_row=k+1, start_column=i, end_row=j, end_column=i)          
            flag = False                               
print('Total:',maxrow,'rows done')                     
wb.save('完成的excel名称.xlsx')    

最后完成的形式如下:

订单编号产品编号产出单位生产日期年份季节数据IDAAAAAA
090191GG001GACD7135329Pieces31-01-20222021Q1/Q26255VNRPE
70016A344
7001CA353
1002XPGGACDA6466330Pieces15-01-20222022Q1/Q2600321121
6255BXCZT
70011VUMC
70011VUMC
1002XPGG002ACDD4489311Pieces15-01-20222022Q3/Q4600321121
6255BXCZT
70011VUMC
70011VUMC
1002XPGG00XACDD4493306Pieces15-01-20222022Q3/Q4600321121
6255BXCZT
70011VUMC

                   
            

 

举报

相关推荐

0 条评论