成人性生交大片免费看视频r_亚洲综合极品香蕉久久网_在线视频免费观看一区_亚洲精品亚洲人成人网在线播放_国产精品毛片av_久久久久国产精品www_亚洲国产一区二区三区在线播_日韩一区二区三区四区区区_亚洲精品国产无套在线观_国产免费www

主頁(yè) > 知識(shí)庫(kù) > Python實(shí)現(xiàn)Excel自動(dòng)分組合并單元格

Python實(shí)現(xiàn)Excel自動(dòng)分組合并單元格

熱門標(biāo)簽:400電話辦理費(fèi)用收費(fèi) 申請(qǐng)辦個(gè)400電話號(hào)碼 鎮(zhèn)江人工外呼系統(tǒng)供應(yīng)商 外呼系統(tǒng)前面有錄音播放嗎 騰訊地圖標(biāo)注有什么版本 高德地圖標(biāo)注字母 千呼ai電話機(jī)器人免費(fèi) 深圳網(wǎng)絡(luò)外呼系統(tǒng)代理商 柳州正規(guī)電銷機(jī)器人收費(fèi)

大家好,我們經(jīng)常會(huì)有這樣的需求。比如下圖

我們需要把同一個(gè)省份的合并起來(lái),如下圖的效果

如何實(shí)現(xiàn)呢,這是原有的df

直觀的操作是這樣的:

df.to_excel('test.xlsx',index=False)
from openpyxl import load_workbook
wb=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()

只是問(wèn)題在于我們不能總是人工判斷start_row和end_row,如何能使程序自動(dòng)獲取row的起始點(diǎn)呢?其實(shí)我們使用一個(gè)groupby就發(fā)現(xiàn)了方法了!大家看到了嗎?

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

#-*- coding:utf-8 -*-
import tkinter as tk #使用Tkinter前需要先導(dǎo)入
from tkinter import filedialog,messagebox,ttk
from openpyxl import load_workbook
from openpyxl.styles import Alignment
import os
import pandas as pd
#建立窗口window
window = tk.Tk()
window.title('Excel合并單元格工具')
w_width=630
w_height=600
scn_width=window.maxsize()[0]
x_point=(scn_width-w_width)//2
window.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()  #目標(biāo)工作表
#打開(kāi)目標(biāo)文件
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="請(qǐng)選擇目標(biāo)工作表:").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()))
#勾選目標(biāo)字段
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="請(qǐng)勾選分組合并的目標(biāo)字段(第一個(gè)勾選框?yàn)榉纸M合并依據(jù),必須事先進(jìn)行排序:").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))
#合并單元格函數(shù)
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: #每一個(gè)要合并的字段
  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): #實(shí)現(xiàn)居中
  ws.cell(row=i,column=colindex).alignment=aligncenter

def manual(): #使用說(shuō)明
 info="""
 作用是合并單元格,把同樣內(nèi)容的單元格合并到一起,所以必須實(shí)現(xiàn)對(duì)目標(biāo)字段進(jìn)行排序,否則無(wú)法實(shí)現(xiàn)合并
 """
 messagebox.showinfo('提示',info)

frame1=tk.Frame(window,pady=6,padx=15)
frame1.grid(row=0,column=0,sticky='w')
ttk.Button(frame1,text="打開(kāi)目標(biāo)文件",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="點(diǎn)擊合并單元格",command=lambda:merging(path_tar.get(),sheetvar.get(),segvars)).grid(row=0,column=0,sticky='w')
ttk.Button(frame3,text="使用說(shuō)明",command=manual).grid(row=0,column=1)

window.mainloop()

效果如圖:

以上就是本文的全部?jī)?nèi)容,希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。

您可能感興趣的文章:
  • python 刪除空值且合并excel的操作
  • python 合并多個(gè)excel中同名的sheet
  • python excel多行合并的方法
  • 利用Python pandas對(duì)Excel進(jìn)行合并的方法示例
  • python合并多個(gè)excel文件的示例
  • 使用 Python 合并多個(gè)格式一致的 Excel 文件(推薦)
  • Python pandas實(shí)現(xiàn)excel工作表合并功能詳解
  • python操作openpyxl導(dǎo)出Excel 設(shè)置單元格格式及合并處理代碼實(shí)例
  • 使用python將多個(gè)excel文件合并到同一個(gè)文件的方法
  • Python實(shí)現(xiàn)合并excel表格的方法分析
  • python 實(shí)現(xiàn)讀取一個(gè)excel多個(gè)sheet表并合并的方法
  • 使用Python橫向合并excel文件的實(shí)例
  • 如何用python合并多個(gè)excel文件

標(biāo)簽:大慶 哈爾濱 烏蘭察布 平頂山 合肥 海南 郴州 烏蘭察布

巨人網(wǎng)絡(luò)通訊聲明:本文標(biāo)題《Python實(shí)現(xiàn)Excel自動(dòng)分組合并單元格》,本文關(guān)鍵詞  Python,實(shí)現(xiàn),Excel,自動(dòng),分組,;如發(fā)現(xiàn)本文內(nèi)容存在版權(quán)問(wèn)題,煩請(qǐng)?zhí)峁┫嚓P(guān)信息告之我們,我們將及時(shí)溝通與處理。本站內(nèi)容系統(tǒng)采集于網(wǎng)絡(luò),涉及言論、版權(quán)與本站無(wú)關(guān)。
  • 相關(guān)文章
  • 下面列出與本文章《Python實(shí)現(xiàn)Excel自動(dòng)分組合并單元格》相關(guān)的同類信息!
  • 本頁(yè)收集關(guān)于Python實(shí)現(xiàn)Excel自動(dòng)分組合并單元格的相關(guān)信息資訊供網(wǎng)民參考!
  • 推薦文章
    99九九电视剧免费观看| 性xxxx丰满孕妇xxxx另类| 日韩国产在线不卡视频| av美女在线观看| 三级黄在线播放| 国产麻豆xxxvideo实拍| 成人黄色a**站在线观看| 日本一区二区动态图| 99蜜桃在线观看免费视频网站| 在线观看欧美日本| 成人国产精品一级毛片视频| 在线观看精品一区| 欧美一区视频在线| 一区二区视频在线观看| 蜜桃av色综合| 日本亚洲欧洲色α| 欧洲大片精品免费永久看nba| 天堂在线中文字幕| 欧美国产精品久久| 国产精品bbw一区二区三区| 国产亚洲一区二区三区在线播放| 99re免费视频精品全部| 午夜免费在线观看精品视频| 福利视频一区二区三区四区| 思热99re视热频这里只精品| caoporn超碰97| 亚洲熟女乱色一区二区三区久久久| 久久精品一区二区国产| 亚洲成人人体| 综合久草视频| 亚洲综合激情小说| 一区二区三区高清在线视频| 国产黄色激情视频| 欧美日韩一级二级三级| 日本熟妇人妻xxxxx| 99福利在线| freee性欧美| 国产第一页浮力| 丰乳肥臀在线| 伊人影院在线观看视频| 精品成人一区| 久久久国产精品一区| 色综合色狠狠天天综合色| 色综合影院在线| av一级在线| 欧美 国产 日本| 亚洲国产精品久久91精品| 日韩欧美在线视频免费观看| 先锋影音男人av资源| 丝袜美腿亚洲一区| 国产伦理久久久| 国产在线视频自拍| yellow视频在线观看一区二区| 日韩av电影手机在线观看| 日韩国产精品亚洲а∨天堂免| 欧美 日韩 国产 成人 在线观看| 无码日本精品xxxxxxxxx| 亚洲欧美日韩精品永久在线| 日韩精品久久久久久久的张开腿让| 少妇高潮露脸国语对白| 成人a视频在线观看| 亚洲成在人线在线播放| 久久精品最新地址| av网站免费播放| 国产伦精品一区二区三区免费视频| 国产一区在线免费| 四虎视频在线精品免费网址| 一级黄色免费| 亚洲成人电视网| 国产激情视频一区二区三区欧美| 国产精品无码久久av| 精品免费日产一区一区三区免费| 精品视频久久久久| 91高清视频| 亚洲高清激情| 四虎成人精品| 国产精品对白刺激久久久| 美女网站免费观看| 欧美日韩不卡在线视频| 含羞草激情视频| 你懂得在线视频| 精品入口蜜桃| 亚洲一区二区三区视频在线播放| 免费看日产一区二区三区| 西西人体一区二区| 国产精品中文字幕制服诱惑| 中文字幕在线永久| 亚洲中文字幕在线一区| 久久视频在线观看免费| 99国产精品免费视频| www.久久成人| 国产精品久久久一区| 国产精品美女久久久久久久网站| 99综合电影在线视频| 国产三级一区二区三区| 欧美日韩一二三| 精品一区二区三区在线观看l| 国产视频在线看| 91中文字幕在线观看| 成年片费网站色大全免费视频| 国产成人啪午夜精品网站男同| 极品中文字幕一区| 国产精品久久久久影院老司| 国产激情在线视频| 免费网站黄在线观看| av资源站久久亚洲| 在线观看一区二区精品视频| 久久久久久久高潮| 97在线免费视频| 中文字幕一区二区在线观看视频| xfplay每日更新av资源| 成人黄色综合网站| 曰韩不卡视频| 欧洲日本在线| 国产黄色av免费看| x88av蜜桃臀一区二区| 91抖音在线观看| 第四色日韩影片| 91免费的视频在线播放| 中国国产一级毛片| 日本粉色视频在线观看| 日韩久久久久久久久久久久| 国产日韩欧美a| 91精品国产91久久久久福利| 色偷偷噜噜噜亚洲男人的天堂| 韩国18福利视频免费观看| 日韩一区二区三区免费观看| 国产一区二区三区高清| av大片在线看| 欧美在线xxxx| 免费黄在线观看| 久久青草久久| 男人的天堂影院| 日本h片久久| 欧美tickling挠脚心丨vk| 成人在线免费在线观看| 自拍亚洲一区欧美另类| 手机在线精品视频| 女人天堂在线视频| 亚洲欧洲国产视频| 亚洲高清免费视频| 国产又粗又猛又爽又黄的网站| 风流老熟女一区二区三区| 国产精品久久777777毛茸茸| 性欧美暴力猛交69hd| 日韩精品一区二区三区高清免费| 国产成人一区二区在线| 蜜臀av无码一区二区三区| 91在线一区二区| 亚洲成人激情在线| 国产成人视屏| 欧美va久久久噜噜噜久久| 亚洲精品自拍视频| 欧美aaaaa性bbbbb小妇| 欧洲s码亚洲m码精品一区| 久久视频一区二区三区| 日本免费一二三区| 懂色中文一区二区三区在线视频| 亚洲综合一二三区| 性感美女视频一二三| 日韩女优在线播放| 中文字幕日韩亚洲| 亚洲影院污污.| 99re成人精品视频| 在线三级中文| 91精品久久久久久久久久久久久久| 欧美亚洲综合网| 一本色道久久综合亚洲精品图片| 99热在线观看精品| 日韩在线精品| 国产精品第10页| 亚洲欧美日韩不卡| 成人观看免费完整观看| 亚洲激精日韩激精欧美精品| 九九热99视频| 精品视频在线播放色网色视频| 日韩高清一级片| 一本高清dvd不卡在线观看| 最近中文字幕mv在线一区二区三区四区| 亚洲欧洲制服丝袜| 国产三级精品三级| 亚洲视频在线播放免费| 亚洲高清资源综合久久精品| 久久av老司机精品网站导航| 亚洲a视频在线观看| 国产丝袜美腿一区二区三区| 国产精品日日摸夜夜爽| 欧美情侣性视频| 亚洲国产欧美一区二区三区不卡| 国产乱在线观看视频| 五月天婷婷综合网| 国产成人免费视频网站视频社区| 亚洲娇小娇小娇小| 91中文字幕在线| 欧美日韩中文字幕一区| 日本精品免费观看| 91在线看网站| 秋霞午夜鲁丝一区二区老狼| 久久久久久久久久久久久女国产乱| 国产成人va亚洲电影| 91麻豆国产香蕉久久精品| 三级网在线观看| 国产精品日韩欧美| 无码人妻aⅴ一区二区三区日本| 日韩高清不卡在线| 久久99国内| 6080日韩午夜伦伦午夜伦| 国产在线视频卡一卡二| www.色呦呦| 亚洲精品喷潮一区二区三区| 欧美激情亚洲天堂| 四虎成人精品一区二区免费网站| 中文字幕三区| 一级毛片免费看| 蜜桃999成人看片在线观看| 精品福利在线看| 日韩精品一区二区亚洲av| 秋霞av鲁丝片一区二区| 2021年精品国产福利在线| 91精品国偷自产在线电影| 和岳每晚弄的高潮嗷嗷叫视频| 尤物在线观看| 3dmax动漫人物在线看| 国产片高清在线观看| 国产精品一区二区三区不卡| 久久综合成人网| 在线观看日韩精品| 非洲一级黄色片| 色吊一区二区三区| 免费资源在线观看| 国产精品久久久久久亚洲色| 老师我好爽再深一点的视频| 国产日韩精品久久久| 国产九九九九| 91香蕉在线观看| 欧美美女一区二区在线观看| 粉嫩av一区二区三区免费观看| 色先锋资源在线播放av| 精品一区二区三区不卡| 激情视频一区二区三区| 怡红院av亚洲一区二区三区h| 青青在线视频一区二区三区| 九色综合日本| 欧美黄视频在线观看| 久久福利影视| 日本在线不卡视频一二三区| 青青操在线播放| 久久久久国产精品麻豆ai换脸| 亚洲乱码精品| 成人不卡免费av| 菠萝蜜视频在线观看一区| jizz性欧美23| 亚洲欧美制服丝袜| 亚洲欧美久久久久一区二区三区| 亚洲AV无码乱码国产精品牛牛| 国产美女在线一区二区三区| 福利视频在线看| 欧美老熟妇喷水| 久久夜色精品国产欧美乱极品| 一区二区三区四区在线免费视频| 超碰日本道色综合久久综合| freehdxxxx| 久久久免费看片| 日本韩国一区二区三区视频| wwwav在线播放| av电影免费| 国产suv精品一区| 日韩欧美大尺度| 国产欧美综合精品一区二区| 欧美三级黄色大片| 99久久精品国产精品久久| 国产在线精品视频| 日本福利午夜视频在线| sihu影院永久在线影院| 日本中文字幕伦在线观看| 亚洲另类自拍| 一本久道久久综合狠狠爱| 美女一区二区在线观看| 高潮一区二区| 亚洲 自拍 另类 欧美 丝袜| 99精品视频免费看| 视频在线精品一区| 国产欧美一区二区三区不卡高清| 一卡二卡三卡视频| 麻豆视频在线观看免费| 青青草视频社区| 欧洲在线免费视频| 91综合免费在线| 中国毛片直接看| 国产精品ⅴa有声小说| 成人激情直播| 给我看免费高清在线观看| 国内av免费观看| 91av一区二区三区| 热久久99这里有精品| 久久久久91| 精品人妻大屁股白浆无码| 国产精品日韩av| 久久这里只有精品18| 国产精品成人免费一区二区视频| 欧美激情办公室videoshd| 国产精品videossex国产高清| 小嫩嫩12欧美| 欧美在线国产| 日韩欧美精品网站| 国产av一区二区三区精品| 精品国产伦一区二区三区观看体验| 久久97人妻无码一区二区三区| 在线观看亚洲精品视频| 天堂av网在线| 国产黄网在线观看| bl在线肉h视频大尺度| 亚洲精品国产精| 成人在线免费观看网址| 国产午夜精品美女视频明星a级| 日韩电影免费观看高清完整版| 69日本xxxxxxxxx49| 四虎在线免费看| 川上优av中文字幕一区二区| 日本免费在线一区| 中文在线不卡视频| 尤物视频在线观看网站| 长河落日免费高清观看| 国产尤物在线视频| 国产精品久久乐| 午夜久久久久久噜噜噜噜| 色94色欧美sute亚洲线路二| 偷窥国产亚洲免费视频|