国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

python 學(xué)習(xí)筆記20 批量修改頁(yè)眉頁(yè)腳

這篇具有很好參考價(jià)值的文章主要介紹了python 學(xué)習(xí)筆記20 批量修改頁(yè)眉頁(yè)腳。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問。

需求:修改指定目錄下所有文件的頁(yè)眉頁(yè)腳,或者往里面添加內(nèi)容。

1. 這里做了word的實(shí)現(xiàn)和excel的實(shí)現(xiàn),如下:

需要先安裝 pip3 install pywin32,另外頁(yè)眉頁(yè)腳格式設(shè)置可以參考:

word:

淺談Word.Application,關(guān)于js操作word文檔的使用_new word.application-CSDN博客

excel:

Python操作Excel教程(圖文教程,超詳細(xì))Python xlwings模塊詳解,_xlwings教程-CSDN博客

import os
import xlwings as xw
import win32com.client as win32
import pythoncom

#將需要替換頁(yè)眉頁(yè)腳的文檔放到path下
path = r'C:\Users\d\Desktop\pdf改名腳本\22\2022年\test'
#原始頁(yè)眉頁(yè)腳內(nèi)容
old_name = u'999'
#新頁(yè)眉頁(yè)腳內(nèi)容
new_name = u'888'
#替換失敗記錄日志
err_log = path + u'\\head修改出錯(cuò)列表.txt'
def log(text):
    with open( err_log,"a+" ) as f:
        f.write(text)
        f.write('\n')

def change_headerfooter(path):
    ''' 更改文件的頁(yè)眉頁(yè)腳 '''
    pythoncom.CoInitialize()
    word = win32.Dispatch('Word.Application')
    #print(dir(word))
    word.Visible = 0
    word.DisplayAlerts = 0

    exapp = xw.App(visible=False, add_book=False)

    # excel = win32.Dispatch('Excel.Application')
    # excel.Visible = 0
    # excel.DisplayAlerts = 0
    for parent, dirnames, filenames in os.walk(path):
        for fn in filenames:
            filedir = os.path.join(parent, fn)
            #獲取需替換目錄下的docx結(jié)尾的文檔名稱
            if fn.endswith('.docx') or fn.endswith('.doc'):
                print(filedir)
                try:
                    doc = word.Documents.Open( filedir )
                    a = word.ActiveDocument.Sections
                    n = 0
                    for i in range( len(a) ):
                    	#獲取當(dāng)前頁(yè)眉
                        head = word.ActiveDocument.Sections[i].Headers[0]
                        old_head = str(head)
                        #獲取當(dāng)前頁(yè)腳
                        foot = word.ActiveDocument.Sections[i].Footers[0]
                        old_foot = str(foot)
                        #print( old_head )
                        #if old_name in old_head:
                        if 1:
                        	#old_name存在頁(yè)眉中時(shí),進(jìn)行進(jìn)行替換
                            #用于替換頁(yè)眉
                            #new_head = old_head.replace( old_name, new_name )
                            #用于補(bǔ)充頁(yè)眉
                            #new_head = old_head + new_name
                            #print( new_head )
                            word.ActiveDocument.Sections[i].Headers[0].Range.Find.ClearFormatting()
                            word.ActiveDocument.Sections[i].Headers[0].Range.Find.Replacement.ClearFormatting()
                            #頁(yè)眉重置
                            word.ActiveDocument.Sections[i].Headers[0].Range.Delete()
                            #設(shè)置字體大小
                            word.ActiveDocument.Sections[i].Headers[0].Range.Font.Size=20
                            #設(shè)置對(duì)齊方式,0-左;1-中;2-右
                            word.ActiveDocument.Sections[i].Headers[0].Range.ParagraphFormat.Alignment = 0

                            word.ActiveDocument.Sections[i].Headers[0].Range.InsertAfter(new_name)
                            #替換舊頁(yè)眉
                            #word.ActiveDocument.Sections[i].Headers[0].Range.Find.Execute( old_head, False, False, False, False, False, False, 1, False, new_name, 2 )

                        #if old_name in old_foot:
                        if 1:
                        	##old_name存在頁(yè)腳中時(shí),進(jìn)行進(jìn)行替換
                            #new_foot = old_foot.replace( old_name, new_name )
                            #new_foot = old_foot + new_name
                            word.ActiveDocument.Sections[i].Footers[0].Range.Find.ClearFormatting()
                            word.ActiveDocument.Sections[i].Footers[0].Range.Find.Replacement.ClearFormatting()
                            #頁(yè)腳重置
                            word.ActiveDocument.Sections[i].Footers[0].Range.Delete()
                            word.ActiveDocument.Sections[i].Footers[0].Range.InsertAfter(new_name)
                            #替換舊頁(yè)腳
                            #word.ActiveDocument.Sections[i].Footers[0].Range.Find.Execute( old_foot, False, False, False, False, False, False, 1, False, new_name, 2 )
                        n = n+1
                    doc.Close()
                except Exception as e:
                    print(e)
                    log(str(filedir))

            if fn.endswith('.xlsx') or fn.endswith('.xls'):
                print(filedir)
                try:
                    ex = exapp.books.open(filedir)
                    #print(dir(ex.sheets))
                    sheet = ex.sheets
                    print(sheet[0].name)
                    if 'test' == sheet[0].name:
                            print(sheet.name)
                    else:
                            #如果第一個(gè)sheet不是test則加一個(gè)test的sheet
                            sheet.add('test',before=sheet[0].name)

                    ex.save()
                    ex.close()

                except Exception as e:
                    log(str(filedir))
    word.Quit()
    exapp.quit()

change_headerfooter(path)

補(bǔ)充一下:excel沒有用pywin32去讀寫因?yàn)槟涿罹褪强ㄟM(jìn)程,無(wú)法對(duì)excel讀寫,可能和緩存的excel有關(guān),如要編輯3.xlsx,則會(huì)卡一個(gè)~3.xlsx的進(jìn)程無(wú)法結(jié)束。就換成了xlwings去讀寫。文章來源地址http://www.zghlxwxcb.cn/news/detail-759021.html

到了這里,關(guān)于python 學(xué)習(xí)筆記20 批量修改頁(yè)眉頁(yè)腳的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • Java 在PDF中插入頁(yè)眉、頁(yè)腳

    Java 在PDF中插入頁(yè)眉、頁(yè)腳

    在處理PDF文檔時(shí),有時(shí)需要為文檔中的每一頁(yè)添加頁(yè)眉和頁(yè)腳,以包含一些有用的信息,如文檔標(biāo)題、章節(jié)名稱、日期、頁(yè)碼等。對(duì)于需要自動(dòng)化處理的場(chǎng)景,或者需要在大量文檔中添加一致的頁(yè)眉和頁(yè)腳,可以通過編程的方式來實(shí)現(xiàn)。本文將介紹如何使用Java為PDF文件添加頁(yè)

    2024年03月25日
    瀏覽(14)
  • 使用FreeMarker生成word文件自定義每頁(yè)頁(yè)眉或頁(yè)腳

    使用FreeMarker生成word文件自定義每頁(yè)頁(yè)眉或頁(yè)腳

    最新工作中遇到生成word中表格時(shí),要求文檔中每頁(yè)頭部和底部都是固定格式的表格,但是內(nèi)容不一樣,頭部信息在word中畫樣式的時(shí)候就可以設(shè)置為“在各頁(yè)頂端以標(biāo)題形式重復(fù)出現(xiàn)”,而底部就沒有辦法這樣設(shè)置了,之后就想著在眉腳中設(shè)置相應(yīng)的樣式就可以啦,但是發(fā)現(xiàn)

    2024年02月16日
    瀏覽(94)
  • 【vue2】中 谷歌 Chrome 實(shí)現(xiàn)自定義頁(yè)眉頁(yè)腳打印

    【vue2】中 谷歌 Chrome 實(shí)現(xiàn)自定義頁(yè)眉頁(yè)腳打印

    解決的最終方案如下圖 ?需求:頁(yè)眉頁(yè)腳如下,設(shè)計(jì)圖所示,使用瀏覽器Ctrl+P打印即可,大小B5試紙 說明:數(shù)據(jù)內(nèi)容不確定分頁(yè)的情況下,建議使用 方法二 相關(guān)屬性參考地址:https://www.w3cplus.com/css/designing-for-print-with-css.html 方法一:絕對(duì)相對(duì)定位(將自定義的頁(yè)眉頁(yè)腳內(nèi)容通

    2024年02月12日
    瀏覽(34)
  • 開源Word文字替換小工具更新 增加文檔頁(yè)眉和頁(yè)腳替換功能

    ITGeeker技術(shù)奇客發(fā)布的開源Word文字替換小工具更新到v1.0.1.0版本啦,現(xiàn)已支持Office Word文檔頁(yè)眉和頁(yè)腳的替換。 同時(shí)ITGeeker技術(shù)奇客修復(fù)了v1.0.0.0版本因替換數(shù)字引起的in ‘ requires string as left operand, not int錯(cuò)誤。 開源Word文字替換小工具官方介紹頁(yè)面:https://www.itgeeker.net/itgeeke

    2024年02月11日
    瀏覽(20)
  • itextpdf7 使用之 html轉(zhuǎn)pdf,生成目錄可跳轉(zhuǎn)、添加頁(yè)眉頁(yè)腳

    itextpdf7 使用之 html轉(zhuǎn)pdf,生成目錄可跳轉(zhuǎn)、添加頁(yè)眉頁(yè)腳

    最近有個(gè)需求,生成信用報(bào)告。 需求: 1、生成pdf有頁(yè)眉頁(yè)腳 2、生成目錄 3、目錄加錨點(diǎn)可跳轉(zhuǎn)。 難點(diǎn): 1、生成的目錄不能實(shí)時(shí)讀取頁(yè)碼 2、目錄是后生成的,屬于兩份pdf拼接的,不能添加錨點(diǎn)跳轉(zhuǎn) 思路: 1、freemaker進(jìn)行html頁(yè)面布局及動(dòng)態(tài)變量替換 2、生成一份pdf文檔,用

    2024年02月20日
    瀏覽(18)
  • Altium20版本快速批量修改Comment使之與Value相同

    Altium20版本快速批量修改Comment使之與Value相同

    在生成BOM表的時(shí)候,一般按照comment進(jìn)行分類,而默認(rèn)的是一類器件就是一個(gè)comment,例如原理圖中用res1表示電阻。即使在BOM表中添加了Value一欄,也會(huì)給后續(xù)的焊接工作帶來麻煩(無(wú)法按照BOM表去焊接,只能再去看原理圖)。因此,設(shè)計(jì)的時(shí)候Comment的值一般是Value值,在AD20版

    2024年02月11日
    瀏覽(54)
  • 【Mquant】9:python批量銘刻erc-20銘文

    【Mquant】9:python批量銘刻erc-20銘文

    ETHS銘文是以太坊銘文協(xié)議Ethscriptions的代幣名稱。Ethscriptions是一個(gè)基于以太坊的銘文協(xié)議,允許用戶在以太坊主網(wǎng)上刻入不同類型的文件,并將其記錄到區(qū)塊中。ETHS作為Ethscriptions的第一個(gè)\\\"概念幣\\\",引起了人們的關(guān)注和熱議。 以太坊銘文協(xié)議Ethscriptions的特點(diǎn)包括: 使用交易

    2024年02月04日
    瀏覽(24)
  • 使用Python批量修改文件名稱

    下載了一些圖片,想要更改其文件的名稱。 試了許多方法,都不太理想。 于是想到了使用Python來實(shí)現(xiàn)。 需要用到的模塊及函數(shù): rename() 函數(shù)用于改變文件或文件夾的名稱。它接受兩個(gè)參數(shù):原文件名和新文件名。 os.listdir(‘路徑’)函數(shù)用于返回給定路徑下的文件名稱列表

    2024年02月15日
    瀏覽(13)
  • python批量處理修改pdf內(nèi)容

    python批量處理修改pdf內(nèi)容

    ? 將PDF轉(zhuǎn)換為Word: 使用pdf2docx庫(kù)中的Converter類來進(jìn)行PDF轉(zhuǎn)換。 convert_pdf_to_docx 函數(shù)接受PDF文件路徑和輸出的Word文檔路徑作為參數(shù)。 通過調(diào)用Converter對(duì)象的 convert 方法將PDF轉(zhuǎn)換為Docx格式。 最后調(diào)用 close 方法關(guān)閉Converter對(duì)象并保存轉(zhuǎn)換后的文檔。 將Word轉(zhuǎn)換為Excel: 使用docx庫(kù)

    2024年01月25日
    瀏覽(22)
  • 【Python實(shí)用技巧】如何批量修改歌曲信息

    【Python實(shí)用技巧】如何批量修改歌曲信息

    1 背景 最近朋友說有個(gè)問題比較苦惱,手里有一批歌曲文件要整理歸檔,但是很多歌曲文件的屬性信息不全,手動(dòng)點(diǎn)開文件屬性一個(gè)個(gè)進(jìn)行修改太折磨人了。有沒什么辦法可以批量進(jìn)行修改? 朋友有難,自然是要赴湯蹈火的,當(dāng)時(shí)就夸下了海口,放心包在我身上,一定幫你找

    2024年02月09日
    瀏覽(30)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包