最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

python保留格式匯總各部門excel內(nèi)容的實現(xiàn)思路

 更新時間:2020年06月01日 11:39:48   作者:bin083  
這篇文章主要介紹了python保留格式匯總各部門excel內(nèi)容,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下

使用pthon匯總各部門的excel內(nèi)容,主要思路:

1.使用pandas讀入?yún)R總表(b3df)和其中一個部門的表格內(nèi)容(dedf)
2.填充pandas空值,使'項目名稱','主管部門'列沒有空值
3.使用xlwings打開匯總表(b3ws)和部門表(dews)
4.用b3df、dedf對比兩個表中項目的行數(shù)是否一樣,不一樣則在匯總表(b3ws)插入行,使匯總表和部門表格(dews)一致
5.復(fù)制部門表格(dews)內(nèi)容到匯總表(b3ws)
6.保存退出

匯總表格如下:

在這里插入圖片描述

匯總A、B、C、D部門后的表格如下:

在這里插入圖片描述

具體代碼如下:

import pandas as pd
import xlwings as xw

def insertRow(zgfj,deFile,b3df,b3ws):
  '''
  '''
  print('正在匯總:' + zgfj)
  dedf = pd.read_excel(deFile,header=3)
  dedf[['項目名稱','主管部門']] = dedf[['項目名稱','主管部門']].fillna(axis=0,method='ffill')
  dewb = app.books.open(deFile)
  dews = dewb.sheets[0]
  #對比兩個表的不同
  df1 = pd.pivot_table(dedf[dedf['主管部門']==zgfj],values='責(zé)任單位',index='項目名稱',aggfunc=[len])
  df2 = pd.pivot_table(b3df[b3df['主管部門']==zgfj],values='責(zé)任單位',index='項目名稱',aggfunc=[len])
  df12 = df1 - df2
  if df12.shape[0]:
    diff = df12[df12[('len','責(zé)任單位')] != 0]
  #兩個表不同則修改excel表,使相同項目的行數(shù)相同
  #if diff.shape[0]:
    for xmmc in list(diff.index):
      for r in range(1,b3ws.used_range.shape[0]+1):                  
        if b3ws.range(r,2).value == xmmc:
          if diff.loc[xmmc][0] > 0:
            print(str(r+1) + ':' + str(int(r+diff.loc[xmmc][0])))
            b3ws.api.rows(str(r+1) + ':' + str(int(r+diff.loc[xmmc][0]))).insert #插入部門多出的行
            break
          else:
            b3ws.api.rows(str(r+1) + ':' + str(int(r-diff.loc[xmmc][0]))).delete #刪除多余的行
            break
  #復(fù)制部門內(nèi)容到匯總表
  for xmmc in list(df2.index):
    for r in range(1,b3ws.used_range.shape[0]+1):                  
        if b3ws.range(r,2).value == xmmc:
          #項目名稱在部門excel表的行號
          rfj = dedf[dedf['項目名稱'] == xmmc].index[0] + 5
          #需要插入的行數(shù)
          rows = df1.loc[xmmc][0]
          #復(fù)制部門excel表格項目名稱所在行到匯總表
          dews.api.rows(str(rfj) + ':' + str(rfj+rows-1)).Copy(b3ws.api.rows(str(r) + ':' + str(r+rows-1)))
          break #因為項目名稱唯一,復(fù)制后可跳出進行下一項目
if __name__ == '__main__':
  #匯總表格文件
  b3File = '匯總文件.xls'
  #各部門表格文件所在位置
  fjFile = {'B部門':'B部門.xls',\
       'A部門':'A部門.xls',\
       'C部門':'C部門.xls',\
       'D部門':'D部門.xls'}
  app = xw.App(visible=False,add_book=False)
  app.display_alerts = False
  app.screen_updating = False
  b3wb = app.books.open(b3File)
  b3ws = b3wb.sheets[0]
  b3df = pd.read_excel(b3File,header=3)
  for zgfj,file in fjFile.items():
    b3df[['項目名稱','主管部門']] = b3df[['項目名稱','主管部門']].fillna(axis=0,method='ffill') #填充合并單元格內(nèi)容
    #print(b3df.shape[0])
    insertRow(zgfj,file,b3df,b3ws)
    
  b3wb.save('匯總后文件.xls')
  app.quit()
  app.kill()

總結(jié)

到此這篇關(guān)于python保留格式匯總各部門excel內(nèi)容的實現(xiàn)思路的文章就介紹到這了,更多相關(guān)python保留格式excel內(nèi)容內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • python中如何調(diào)用ansys

    python中如何調(diào)用ansys

    這篇文章主要介紹了python中如何調(diào)用ansys問題,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2023-02-02
  • Python語法垃圾回收機制原理解析

    Python語法垃圾回收機制原理解析

    這篇文章主要介紹了Python語法垃圾回收機制原理解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-03-03
  • pycharm開發(fā)一個簡單界面和通用mvc模板(操作方法圖解)

    pycharm開發(fā)一個簡單界面和通用mvc模板(操作方法圖解)

    這篇文章主要介紹了pycharm開發(fā)最簡單的界面和通用mvc模板的方法,本文通過圖文并茂的形式給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下
    2020-05-05
  • Python編程調(diào)用百度API實現(xiàn)地理位置經(jīng)緯度坐標(biāo)轉(zhuǎn)換示例

    Python編程調(diào)用百度API實現(xiàn)地理位置經(jīng)緯度坐標(biāo)轉(zhuǎn)換示例

    這篇文章主要介紹了Python編程調(diào)用百度API來實現(xiàn)地理位置經(jīng)緯度坐標(biāo)轉(zhuǎn)換的示例解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助
    2021-10-10
  • python多進程并行代碼實例

    python多進程并行代碼實例

    這篇文章主要介紹了python多進程并行代碼實例,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2019-09-09
  • Python輸入整數(shù)進行排序方式

    Python輸入整數(shù)進行排序方式

    這篇文章主要介紹了Python輸入整數(shù)進行排序方式,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教
    2022-12-12
  • Python3利用SMTP協(xié)議發(fā)送E-mail電子郵件的方法

    Python3利用SMTP協(xié)議發(fā)送E-mail電子郵件的方法

    SMTP(Simple Mail Transfer Protocol)即簡單郵件傳輸協(xié)議,它是一組用于由源地址到目的地址傳送郵件的規(guī)則,由它來控制信件的中轉(zhuǎn)方式。下面這篇文章主要給大家介紹了關(guān)于Python3如何利用SMTP協(xié)議發(fā)送E-mail電子郵件的方法,需要的朋友可以參考下。
    2017-09-09
  • Python魔術(shù)方法深入分析講解

    Python魔術(shù)方法深入分析講解

    所謂魔法函數(shù)(Magic Methods),是Python的?種?級語法,允許你在類中?定義函數(shù)(函數(shù)名格式?般為__xx__),并綁定到類的特殊?法中。?如在類A中?定義__str__()函數(shù),則在調(diào)?str(A())時,會?動調(diào)?__str__()函數(shù),并返回相應(yīng)的結(jié)果
    2023-02-02
  • python文件數(shù)據(jù)分析治理提取

    python文件數(shù)據(jù)分析治理提取

    這篇文章主要介紹了python文件數(shù)據(jù)分析治理提取,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價值,需要的小伙伴可以參考一下
    2022-08-08
  • 6個Python辦公黑科技,助你提升工作效率

    6個Python辦公黑科技,助你提升工作效率

    這篇文章主要介紹了Python辦公黑科技,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-08-08

最新評論

徐闻县| 宿州市| 瓮安县| 天长市| 西吉县| 阿合奇县| 溧阳市| 太湖县| 武陟县| 永康市| 济阳县| 南宁市| 长子县| 浦北县| 根河市| 保康县| 涞水县| 沙河市| 延吉市| 浪卡子县| 十堰市| 牟定县| 高安市| 襄樊市| 石狮市| 三台县| 沙湾县| 玛曲县| 丰宁| 克什克腾旗| 南部县| 正阳县| 安达市| 油尖旺区| 若羌县| 吴旗县| 兴业县| 通城县| 新营市| 西峡县| 扶余县|