日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

Python實現Excel自動分組合并單元格

瀏覽:170日期:2022-06-27 13:11:47

大家好,我們經常會有這樣的需求。比如下圖

Python實現Excel自動分組合并單元格

我們需要把同一個省份的合并起來,如下圖的效果

Python實現Excel自動分組合并單元格

如何實現呢,這是原有的df

Python實現Excel自動分組合并單元格

直觀的操作是這樣的:

df.to_excel(’test.xlsx’,index=False)from openpyxl import load_workbookwb=load_workbook(’test.xlsx’)ws=wb.active()ws.merge_cells(start_row=2,end_row=8,start_column=1,end_column=1)ws.merge_cells(start_row=2,end_row=8,start_column=2,end_column=2)ws.merge_cells(start_row=9,end_row=14,start_column=1,end_column=1)ws.merge_cells(start_row=9,end_row=14,start_column=2,end_column=2)ws.merge_cells(start_row=15,end_row=18,start_column=1,end_column=1)ws.merge_cells(start_row=15,end_row=18,start_column=2,end_column=2)wb.save()

只是問題在于我們不能總是人工判斷start_row和end_row,如何能使程序自動獲取row的起始點呢?其實我們使用一個groupby就發現了方法了!大家看到了嗎?

Python實現Excel自動分組合并單元格

真是柳暗花明又一村啊,完整解決方案已經有了,我封裝到了tkinter里面,請看!

#-*- coding:utf-8 -*-import tkinter as tk #使用Tkinter前需要先導入from tkinter import filedialog,messagebox,ttkfrom openpyxl import load_workbookfrom openpyxl.styles import Alignmentimport osimport pandas as pd#建立窗口windowwindow = tk.Tk()window.title(’Excel合并單元格工具’)w_width=630w_height=600scn_width=window.maxsize()[0]x_point=(scn_width-w_width)//2window.geometry(’%dx%d+%d+%d’ %(w_width,w_height,x_point,100))window.wm_attributes(’-topmost’,True)window.tk_focusFollowsMouse()window.bind('<Escape>',lambda event:window.iconify())path_tar=tk.StringVar()sheetvar=tk.StringVar() #目標工作表#打開目標文件def getmergefile(): file_path=filedialog.askopenfilename(title=u’選擇文件’,filetype=[(’Excel’,’.xlsx’)]) path_tar.set(file_path) alldata=pd.read_excel(file_path,None) ttk.Label(frame1,text='請選擇目標工作表:').grid(row=1,column=0,sticky=’w’) global sheetvar chosen_sheet=ttk.Combobox(frame1,width=16,textvariable=sheetvar) chosen_sheet[’values’]=list(alldata) chosen_sheet.grid(row=1,column=1,sticky=’w’) chosen_sheet.bind('<<ComboboxSelected>>',lambda event:getmergeseg(event,alldata,sheetvar.get()))#勾選目標字段def getmergeseg(event,alldata,sheet): global frame2,segvars segvars=[] try: frame2.destroy() except: pass frame2=tk.Frame(window,padx=15,pady=6) frame2.grid(row=1,column=0,sticky=’w’) ttk.Label(frame2,text='請勾選分組合并的目標字段(第一個勾選框為分組合并依據,必須事先進行排序:').grid(row=0,column=0,columnspan=4,sticky=’w’) data=alldata[sheet] for index,item in enumerate(data.columns): segvars.append(tk.StringVar()) ttk.Checkbutton(frame2,text=item,variable=segvars[-1],onvalue=item,offvalue=’’).grid(row=(index//4+1),column=index%4,sticky=’w’)#合并字段單元格def merging(file,sheet,segvars): selected=[i.get() for i in segvars if i.get()] df=pd.read_excel(file,sheet) wb=load_workbook(file) ws=wb[sheet] mergecells(ws,df,selected) try: wb.save(file) messagebox.showinfo(’提示’,file+’-’+sheet+’指定單元格合并完成’) os.system(’start ’+os.path.dirname(file)) except Exception as e: messagebox.showerror(’警告’,str(e))#合并單元格函數def mergecells(ws,df,cols): col=cols[0] gdic=df.groupby(col).groups aligncenter=Alignment(horizontal=’center’,vertical=’center’) for gname in gdic: indexs=gdic[gname]+2 indexs=indexs.sort_values() for col in cols: #每一個要合并的字段 colindex=df.columns.tolist().index(col)+1 ws.merge_cells(start_row=indexs[0],end_row=indexs[-1],start_column=colindex,end_column=colindex) #合并 for i in range(1,ws.max_row+1): #實現居中 ws.cell(row=i,column=colindex).alignment=aligncenterdef manual(): #使用說明 info=''' 作用是合并單元格,把同樣內容的單元格合并到一起,所以必須實現對目標字段進行排序,否則無法實現合并 ''' messagebox.showinfo(’提示’,info)frame1=tk.Frame(window,pady=6,padx=15)frame1.grid(row=0,column=0,sticky=’w’)ttk.Button(frame1,text='打開目標文件',command=getmergefile).grid(row=0,column=0,sticky=’w’)ttk.Entry(frame1,textvariable=path_tar,width=40).grid(row=0,column=1)frame3=tk.Frame(window,pady=10,padx=15)frame3.grid(row=2,column=0,sticky=’w’)ttk.Button(frame3,text='點擊合并單元格',command=lambda:merging(path_tar.get(),sheetvar.get(),segvars)).grid(row=0,column=0,sticky=’w’)ttk.Button(frame3,text='使用說明',command=manual).grid(row=0,column=1)window.mainloop()

效果如圖:

Python實現Excel自動分組合并單元格

以上就是本文的全部內容,希望對大家的學習有所幫助,也希望大家多多支持好吧啦網。

標簽: python
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
首页亚洲欧美制服丝腿| 久久精品午夜| 涩涩av在线| 精精国产xxxx视频在线野外| 超碰在线99| 亚洲性色视频| 国产美女高潮在线观看| www.com.cn成人| 黄色成人在线网址| 日韩一区二区三区精品视频第3页| 日韩动漫一区| 成人国产精品一区二区网站| 亚洲电影在线| 日韩影片在线观看| 成人在线黄色| 欧美日韩日本国产亚洲在线 | 中文字幕成人| 国产精品hd| 久久亚洲国产| 日韩中文欧美在线| 日韩二区在线观看| caoporn视频在线| 日韩午夜精品| 久久爱www.| 国产精品97| 国产精品一区二区av交换| 日韩欧美自拍| 色8久久久久| 美女一区网站| 亚洲+小说+欧美+激情+另类| 国产成人精品亚洲线观看 | 久久免费视频66| 超碰在线99| 午夜性色一区二区三区免费视频| 精品久久久亚洲| 久久国产精品亚洲77777| 国产精久久一区二区| 日韩国产欧美一区二区| 日韩欧美另类中文字幕| 久久久久国产| 国产精品网在线观看| 久久精品91| 国产精品入口久久| 日韩精品一二三| 日韩中文在线播放| 国产精品免费不| 久久先锋影音| 国产高潮在线| 日欧美一区二区| 九色精品91| 99国产精品久久久久久久| 伊人久久亚洲| 久久久精品午夜少妇| 欧美日韩网址| 精品亚洲二区| 国产精品毛片一区二区三区| 国产精品v亚洲精品v日韩精品| 欧美a一区二区| 香蕉久久夜色精品国产| 丝袜诱惑一区二区| 国产精品国码视频| 亚洲欧洲专区| 国产福利一区二区精品秒拍| 免费国产亚洲视频| 欧美日韩少妇| 天堂资源在线亚洲| 成人国产精选| 国产精品一区亚洲| 国产亚洲在线| 免费精品国产的网站免费观看| 色婷婷综合网| 久久av超碰| 国产欧美一区二区三区国产幕精品| 久热综合在线亚洲精品| 免费成人网www| 久久精品成人| 黄色在线网站噜噜噜| 天堂久久一区| 亚洲三级网址| 蜜桃av一区二区| 久久国产精品久久久久久电车| 婷婷综合网站| 久久精品青草| 99视频精品全国免费| 日韩中文在线电影| 日韩欧美精品一区| 国产精品99久久精品| 国产成人精品一区二区三区免费 | 亚洲欧美日本国产| 中文字幕一区二区三区四区久久| 伊人久久国产| 水蜜桃久久夜色精品一区| 精品久久国产一区| 精品国产不卡| 久久精品一区二区三区中文字幕| 国产精品免费大片| 国产精品啊v在线| 久久国产精品美女| 久久亚洲精品中文字幕| 色一区二区三区四区| 精品一区电影| av日韩中文| 婷婷激情一区| 亚洲精品一区二区妖精| 午夜精品一区二区三区国产| 久久精品一区二区不卡| 999精品一区| 999在线观看精品免费不卡网站| 欧美亚洲精品在线| 亚洲国产不卡| 亚洲欧美日本国产专区一区| 亚洲涩涩av| 日本成人手机在线| 国产精品免费99久久久| 精品国产美女a久久9999| 国产不卡人人| 国产一区亚洲| 亚洲色图国产| 国产精品片aa在线观看 | 一区免费视频| 亚洲日本在线观看视频| 国产日韩免费| 日本а中文在线天堂| 激情综合网址| 日韩一区免费| 国产videos久久| 一区三区视频| 日韩国产在线观看一区| 久久不卡日韩美女| 亚洲风情在线资源| 国产午夜精品一区二区三区欧美 | 日本亚洲视频| 国产一区二区亚洲| 美女少妇全过程你懂的久久| 日本不卡视频一二三区| 久久69成人| 日韩一区二区免费看| 久久激五月天综合精品| 成人精品天堂一区二区三区| 免费人成精品欧美精品| 精品理论电影在线| 国产精品免费看| 国产精品观看| 午夜久久福利| 国产精品97| 日韩av三区| 日韩精品dvd| 日韩中文一区二区| 久久电影tv| 亚洲人成亚洲精品| 国产精品专区免费| 怡红院精品视频在线观看极品| 日本亚洲欧洲无免费码在线| 青青久久av| 国产精品一区二区三区www| 亚州av乱码久久精品蜜桃| 国产精品久久久久久久久久妞妞| 亚洲精品2区| 久久中文字幕一区二区| 蜜桃精品在线| 欧美日韩99| 日韩视频精品在线观看| 国产精品巨作av| 亚洲欧美日韩国产一区| 精品国产aⅴ| 亚洲一区不卡| 中文一区一区三区高中清不卡免费| 香蕉视频成人在线观看| 美女av在线免费看| 国产欧美精品| 久久国产精品99国产| 91精品啪在线观看国产18| 欧美xxxx性| 欧美啪啪一区| 久久亚洲专区| 国产盗摄——sm在线视频| 日韩精品第二页| 国产亚洲在线| 成人国产精品久久| 国产日韩免费| 中文字幕成人| 蜜桃成人av| 色综合五月天| 嫩呦国产一区二区三区av| 亚洲另类视频| 首页亚洲欧美制服丝腿| 久久久成人网| 成人在线视频免费看| 国产调教一区二区三区| 蜜桃tv一区二区三区| 伊人久久在线| 动漫av一区| 精品国产第一福利网站| 日本欧美国产| 中文字幕高清在线播放| 久久精品国产一区二区| 麻豆国产一区| 久久精品九色| 成人国产精品一区二区免费麻豆| 国产精品网址|