1. <strong id="7actg"></strong>
    2. <table id="7actg"></table>

    3. <address id="7actg"></address>
      <address id="7actg"></address>
      1. <object id="7actg"><tt id="7actg"></tt></object>

        【Python實(shí)戰(zhàn)案例】讀取Excel批量替換Word局部信息

        共 2605字,需瀏覽 6分鐘

         ·

        2021-11-28 17:44

        一個(gè)word辦公自動(dòng)化的私活

        最近接到一個(gè)單子,需要我將word文檔中的關(guān)鍵信息(紅色字體內(nèi)容)替換為一個(gè)excel文檔中的一行數(shù)據(jù),并能夠批量化的將excel文檔中的每個(gè)數(shù)據(jù)依據(jù)這個(gè)word模板生成對(duì)應(yīng)數(shù)量的word文件。

        做了一下午,總算拿到傭金,還是挺開心的

        接下來看看,先看下數(shù)據(jù)源和要替換的word模板(數(shù)據(jù)源)(word模板)

        主要原理

        這里主要的原理是我使用了專門處理word的python擴(kuò)展包python-docx,然后提取段落,對(duì)段落中執(zhí)行文檔的編號(hào)進(jìn)行遍歷,由于格式是固定的,那么只要對(duì)每個(gè)段落對(duì)象進(jìn)行計(jì)數(shù),然后按照對(duì)應(yīng)計(jì)數(shù)來進(jìn)行數(shù)組定位,并把從excel中讀取到的字段值進(jìn)行替換就可以達(dá)到批量生成模板數(shù)據(jù)的要求了。

        看下代碼:

        from?docx?import?Document
        import?docx
        import?pandas?as?pd

        df?=?pd.read_excel(r'工作簿1.xlsx')

        #讀取excel數(shù)據(jù)
        for?i?in?df.index:
        ????#?實(shí)例化一個(gè)文件對(duì)象
        ????doc?=?Document(r'1XXXXXXXXXXX模版.docx')
        ????tm?=?df.loc[i,"#XXXXXX??時(shí)間#"]
        ????plc?=?df.loc[i,"#XXXXX?地點(diǎn)#"]
        ????chp?=?df.loc[i,'#被XXXXX?姓名或名稱#']
        ????ids?=?df.loc[i,'#XXXX?社會(huì)XXXX碼#']
        ????adr?=?df.loc[i,'#住XXXXX所#']
        ????ph?=?df.loc[i,'#聯(lián)XXXX話#']
        ????cp?=?df.loc[i,'#現(xiàn)XXXXX人#']
        ????idp?=?df.loc[i,'#身XXXX號(hào)#']
        ????#?定位信息節(jié)點(diǎn):
        ????doc_paras?=?doc.paragraphs
        ????count?=?0
        ????for?para?in?doc_paras[3:14]:
        ????????print("段落"+str(count))
        ????????if?count?==?9:
        ????????????col1?=?para.text.split(":")
        ????????????col1[2]?=?idp
        ????????????col1[1]?=?col1[1].split("??")
        ????????????col1[1][0]?=?cp
        ????????????col2?=?col1[0]+":"+col1[1][0]+"??"+col1[1][1]+":"+str(col1[2])
        ????????????para.text?=?col2
        ????????elif?count==0:
        ????????????col?=?para.text.split(":")
        ????????????col[1]?=?tm
        ????????????res?=?":".join(col)
        ????????????para.text?=?res
        ????????????print(para.text)
        ????????elif?count==1:
        ????????????col1?=?para.text.split("???")
        ????????????col2?=?col1[0].split(":")
        ????????????col2[1]?=?plc
        ????????????col3?=?col2[0]+":"+col2[1]+"???"+col1[1]
        ????????????para.text?=?col3
        ????????????print(para.text)
        ????????elif?count==5:
        ????????????col1?=?para.text.split(":")
        ????????????col1[1]?=?chp
        ????????????col2?=?col1[0]+":"+col1[1]
        ????????????para.text?=?col2
        ????????????print(para.text)
        ????????elif?count==6:
        ????????????col1?=?para.text.split(":")
        ????????????col1[1]?=?ids
        ????????????col2?=?col1[0]+":"+col1[1]
        ????????????para.text?=?col2
        ????????????print(para.text)
        ????????elif?count==7:
        ????????????col1?=?para.text.split(":")
        ????????????col1[1]?=?adr
        ????????????col2?=?col1[0]+":"+col1[1]
        ????????????para.text?=?col2
        ????????????print(para.text)
        ????????elif?count==8:
        ????????????col1?=?para.text.split(":")
        ????????????col1[1]?=?ph
        ????????????col2?=?col1[0]+":"+str(col1[1])
        ????????????para.text?=?col2
        ????????????print(para.text)
        ????????count+=1
        ????doc.save(rf'new{i}.doc')
        ????????

        最終實(shí)現(xiàn)了所有對(duì)應(yīng)數(shù)據(jù)的替換,python在處理word方面的辦公自動(dòng)化比起excel來,一點(diǎn)也不差,而且可以和excel進(jìn)行結(jié)合,產(chǎn)生更多不可思議的高效功能。

        圖中紅色框就是被替換的程序,這段代碼將來會(huì)用在他們的很多部門,預(yù)計(jì)能夠批量產(chǎn)生幾百上千個(gè)類似表格,懸賞人對(duì)我感謝之情溢于言表。

        ?

        ? ?最后,推薦螞蟻老師的《零基礎(chǔ)入門Python到辦公自動(dòng)化》課程


        ? ?


        瀏覽 169
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        評(píng)論
        圖片
        表情
        推薦
        點(diǎn)贊
        評(píng)論
        收藏
        分享

        手機(jī)掃一掃分享

        分享
        舉報(bào)
        1. <strong id="7actg"></strong>
        2. <table id="7actg"></table>

        3. <address id="7actg"></address>
          <address id="7actg"></address>
          1. <object id="7actg"><tt id="7actg"></tt></object>
            肉感大码丰满小向美奈子 | 97超碰人人网 | 攵女乱h国产免费网站 | 老熟久久| 暴躁老奶奶csgo视频素材 | 亚洲欧美色va天堂人熟伦 | 歪歪韩漫画 | 古装三级做爰在线观看 | 久久精品熟女亚洲AV蜜桃 | 中文字幕日韩精品人妻在线视频 |