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

使用Python輕松管理Word節(jié)及頁面布局設(shè)置

 更新時(shí)間:2026年04月17日 08:27:11   作者:站大爺IP  
這篇文章主要為大家詳細(xì)介紹了如何使用Python輕松管理Word節(jié)及頁面布局設(shè)置,文中的示例代碼講解詳細(xì),感興趣的小伙伴可以跟隨小編一起學(xué)習(xí)一下

?小李盯著剛寫完的80頁項(xiàng)目報(bào)告,眉頭擰成一團(tuán)。前面的章節(jié)都是標(biāo)準(zhǔn)縱向排版,但中間有兩張數(shù)據(jù)表實(shí)在太寬,放在縱向頁面里,字小得得拿放大鏡看。他試過把這兩頁改成橫向,結(jié)果整個(gè)文檔都跟著轉(zhuǎn)了,完全亂套。

這其實(shí)是Word里一個(gè)特別經(jīng)典的問題。大部分人都在“頁面布局”里點(diǎn)來點(diǎn)去,改了一頁,后面全跟著變,氣得想摔鼠標(biāo)。秘密就藏在Word的一個(gè)核心概念里——節(jié)(Section)。

一、你以前的操作,問題出在哪

新建一個(gè)Word文檔時(shí),它只有一個(gè)“節(jié)”。你可以把“節(jié)”想象成一個(gè)容器,這個(gè)容器里裝著幾頁紙,這幾頁紙的頁邊距、紙張方向、頁眉頁腳全都一樣。平時(shí)在一份文檔里隨便改設(shè)置,改的就是整個(gè)容器。把第二頁改成橫向,相當(dāng)于把這個(gè)唯一的容器整個(gè)翻轉(zhuǎn)了,后面的頁面當(dāng)然跟著亂套。

想要中間幾頁與眾不同,就得在特殊頁面的前后“切一刀”,制造出新的容器。有了三個(gè)獨(dú)立的容器(節(jié)),你改中間那個(gè),兩頭的不會(huì)受影響。

二、用Python看見“節(jié)”

紙上談兵沒意思,直接上手操作。python-docx就是干這活的利器。

from docx import Document

# 打開小李的報(bào)告
doc = Document('項(xiàng)目報(bào)告.docx')

# 看看這個(gè)文檔里有多少個(gè)“容器”(節(jié))
print(len(doc.sections))  # 不出意外,打印出來是 1

# 拿到第一個(gè)(也是唯一的)節(jié)
first_section = doc.sections[0]

這段代碼就像給文檔做了個(gè)CT掃描。文檔結(jié)構(gòu)一目了然。默認(rèn)情況下,你永遠(yuǎn)只有一個(gè)節(jié),也就是doc.sections[0]。

三、在你想分頁的地方,“切”上一刀

小李需要在第3頁后面 插入一個(gè)橫向的大表格。這意味著要在第3頁結(jié)束的地方,切出一個(gè)新節(jié)。

from docx import Document
from docx.enum.section import WD_SECTION_START

doc = Document('項(xiàng)目_report.docx')

# 假設(shè)文檔已經(jīng)有3頁內(nèi)容了,我們?cè)谶@后面創(chuàng)建新節(jié)
# 注意:add_section() 是在文檔末尾追加新節(jié)
# 如果你想在中間插入,邏輯稍微不同,但核心是下面這行
new_section = doc.add_section(WD_SECTION_START.NEW_PAGE)

# 此時(shí),doc.sections 的長度變成了 2
# sections[0] 是原來的第一頁到第三頁
# sections[1] 就是我們新建的空節(jié),從新的一頁開始

add_section()就像一把刀,在文檔末尾切出一個(gè)獨(dú)立的新空間。WD_SECTION_START.NEW_PAGE的意思是,切完之后,新節(jié)的內(nèi)容從新的一頁開始。

四、給新節(jié)“換衣服”

現(xiàn)在有了獨(dú)立的容器(第二節(jié)),怎么改它的設(shè)置都不會(huì)影響前面的內(nèi)容。

# 獲取第二個(gè)節(jié)(索引為1)
target_section = doc.sections[1]

from docx.enum.section import WD_ORIENTATION
from docx.shared import Inches

# 獲取當(dāng)前紙張的寬高,準(zhǔn)備交換(縱向變橫向)
original_width = target_section.page_width
original_height = target_section.page_height

# 設(shè)置方向?yàn)闄M向
target_section.orientation = WD_ORIENTATION.LANDSCAPE

# 交換寬高
target_section.page_width = original_height
target_section.page_height = original_width

# 再把頁邊距調(diào)窄一點(diǎn),給大表格騰地方
target_section.left_margin = Inches(0.5)
target_section.right_margin = Inches(0.5)

doc.save('項(xiàng)目_report_已排版.docx')

執(zhí)行完這段代碼,文檔中間的這幾頁就神奇地變成了橫向,前后的縱向排版紋絲不動(dòng)。這就是“節(jié)”的魔力。

五、頁眉頁腳的獨(dú)立王國

更頭疼的是頁眉頁腳。公司要求封面不能有頁碼,目錄要用羅馬數(shù)字,正文要用阿拉伯?dāng)?shù)字從“1”開始。

原理一模一樣:每個(gè)“節(jié)”的頁眉頁腳默認(rèn)是“鏈接到前一節(jié)”的。想要獨(dú)立,得先“斷開關(guān)聯(lián)”。

# 假設(shè)現(xiàn)在有3個(gè)節(jié):封面節(jié)、目錄節(jié)、正文節(jié)
# 我們操作第三節(jié)(正文)的頁腳

third_section = doc.sections[2]

# 關(guān)鍵一步:斷開與前一節(jié)(目錄)的鏈接
third_section.footer.is_linked_to_previous = False

# 現(xiàn)在可以放心設(shè)置正文的頁碼了
# 注意:設(shè)置頁碼格式涉及到操作頁腳里的域代碼
footer = third_section.footer
# ... 在這里添加頁碼并設(shè)置起始為1

拿到第三節(jié)的頁腳后,執(zhí)行is_linked_to_previous = False,這根“臍帶”就被剪斷了。從此以后,正文節(jié)的頁碼跟目錄節(jié)的頁碼再也沒關(guān)系,各走各的。

還有一個(gè)常用功能是“首頁不同”。有的章節(jié)開頭那一頁不想顯示頁眉,這個(gè)設(shè)置也是掛在“節(jié)”下面的。

section = doc.sections[0]
section.different_first_page_header_footer = True

# 單獨(dú)設(shè)置首頁頁眉
first_page_header = section.first_page_header
first_page_header.paragraphs[0].text = "封面不留頁眉"

# 其他頁面的正常頁眉
other_pages_header = section.header
other_pages_header.paragraphs[0].text = "內(nèi)部資料"

打開different_first_page_header_footer開關(guān)后,Word就會(huì)把這個(gè)節(jié)的首頁和其他頁分開對(duì)待,你可以分別往里面填內(nèi)容。

六、批量修改,降維打擊

學(xué)會(huì)了控制“節(jié)”,能玩的花樣就多了。比如公司換了新logo,要批量給幾百份標(biāo)書統(tǒng)一加上“機(jī)密”水印和頁眉。

import os
from docx import Document

folder_path = './reports/'

for filename in os.listdir(folder_path):
    if filename.endswith('.docx'):
        doc = Document(os.path.join(folder_path, filename))
        
        # 遍歷每一個(gè)節(jié)
        for section in doc.sections:
            # 強(qiáng)制斷開頁眉鏈接,防止有些文檔設(shè)置過特殊屬性
            section.header.is_linked_to_previous = False
            
            header = section.header
            # 清空原來的頁眉
            header.paragraphs[0].clear()
            # 寫入新內(nèi)容
            header.paragraphs[0].text = "XX集團(tuán) 絕密文件"
            
        doc.save(os.path.join(folder_path, 'new_' + filename))

一個(gè)循環(huán),遍歷所有節(jié),幾秒鐘完成幾百個(gè)文件的手工活兒。

七、把大象放進(jìn)冰箱

回過頭看小李遇到的麻煩。把Word里的一頁單獨(dú)改變布局,就像把大象放進(jìn)冰箱,也是分三步:

  • 打開冰箱門:用sections屬性看到文檔的結(jié)構(gòu)。
  • 把大象放進(jìn)去:用add_section()在目標(biāo)位置切出新的節(jié)。
  • 把冰箱門關(guān)上:修改新節(jié)的orientation、margin等屬性。

理解了“節(jié)”這個(gè)概念,Word自動(dòng)化的大門才算真正推開了。頁眉頁腳、頁碼格式、分欄布局,全都建立在這個(gè)基礎(chǔ)上。以后遇到再復(fù)雜的排版需求,心里就有底了——無非就是切幾刀,改幾個(gè)參數(shù)的事。

這份技能在手里,不管是一份80頁的報(bào)告,還是800頁的標(biāo)書,用Python管理起來都格外輕松。

?以上就是使用Python輕松管理Word節(jié)及頁面布局設(shè)置的詳細(xì)內(nèi)容,更多關(guān)于Python管理Word節(jié)和頁面布局的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!

相關(guān)文章

  • 使用Python庫高效自動(dòng)化處理圖像的操作過程

    使用Python庫高效自動(dòng)化處理圖像的操作過程

    本文將介紹兩個(gè)強(qiáng)大的Python圖像處理庫:Pillow(PIL的fork版本)和OpenCV,并通過實(shí)例展示如何使用它們實(shí)現(xiàn)各種圖像處理自動(dòng)化任務(wù),感興趣的朋友跟隨小編一起看看吧
    2025-08-08
  • Python小整數(shù)對(duì)象池和字符串intern實(shí)例解析

    Python小整數(shù)對(duì)象池和字符串intern實(shí)例解析

    這篇文章主要介紹了Python小整數(shù)對(duì)象池和字符串intern實(shí)例解析,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2020-03-03
  • Python深拷貝與淺拷貝引用

    Python深拷貝與淺拷貝引用

    這篇文章主要介紹了Python深拷貝與淺拷貝引用,Python并沒有拷貝這個(gè)對(duì)象,而只是拷貝了這個(gè)對(duì)象的引用,下文具體的相關(guān)介紹需要的小伙伴可以參考一下
    2022-04-04
  • Python機(jī)器學(xué)習(xí)之邏輯回歸

    Python機(jī)器學(xué)習(xí)之邏輯回歸

    這篇文章主要介紹了Python機(jī)器學(xué)習(xí)之邏輯回歸,文中有非常詳細(xì)的代碼示例,對(duì)正在學(xué)習(xí)Python的小伙伴們有非常好的幫助,需要的朋友可以參考下
    2021-05-05
  • Python實(shí)現(xiàn)Web請(qǐng)求與響應(yīng)的教學(xué)指南

    Python實(shí)現(xiàn)Web請(qǐng)求與響應(yīng)的教學(xué)指南

    Web?請(qǐng)求與響應(yīng)是?Web?通信的基礎(chǔ),其中?Web?請(qǐng)求由客戶端發(fā)起,服務(wù)器處理后返回響應(yīng),本文主要介紹了Python實(shí)現(xiàn)Web請(qǐng)求與響應(yīng)的相關(guān)知識(shí),有需要的可以了解下
    2025-05-05
  • python3+PyQt5重新實(shí)現(xiàn)QT事件處理程序

    python3+PyQt5重新實(shí)現(xiàn)QT事件處理程序

    這篇文章主要為大家詳細(xì)介紹了python3+PyQt5重新實(shí)現(xiàn)QT事件處理程序,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2018-04-04
  • python九九乘法表的實(shí)例

    python九九乘法表的實(shí)例

    下面小編就為大家?guī)硪黄猵ython九九乘法表的實(shí)例。小編覺得挺不錯(cuò)的,現(xiàn)在就分享給大家,也給大家做個(gè)參考。一起跟隨小編過來看看吧
    2017-09-09
  • Django通過自定義認(rèn)證后端實(shí)現(xiàn)多種登錄方式驗(yàn)證

    Django通過自定義認(rèn)證后端實(shí)現(xiàn)多種登錄方式驗(yàn)證

    Django提供了用戶認(rèn)證系統(tǒng),那么如何在項(xiàng)目中進(jìn)行應(yīng)用呢?在本文中小編將給大家介紹如何使用用戶認(rèn)證系統(tǒng),實(shí)現(xiàn)我們業(yè)務(wù)場景中常見的多種登錄方式驗(yàn)證。感興趣的小伙伴可以了解一下
    2021-12-12
  • Python實(shí)現(xiàn)簡單的四則運(yùn)算計(jì)算器

    Python實(shí)現(xiàn)簡單的四則運(yùn)算計(jì)算器

    相信大家在學(xué)習(xí)數(shù)據(jù)結(jié)構(gòu)時(shí),就學(xué)習(xí)了簡單四則運(yùn)算表達(dá)式求解的一個(gè)算法,可惜一直沒有自己動(dòng)手實(shí)現(xiàn)過這個(gè)算法。最近重拾數(shù)據(jù)結(jié)構(gòu)與算法,恰巧又正在用Python比較頻繁,所幸就用它來實(shí)現(xiàn)這個(gè)算法,雖然網(wǎng)上有很多代碼,不過作為一個(gè)學(xué)習(xí)者,還是應(yīng)當(dāng)親自動(dòng)手實(shí)現(xiàn)。
    2016-11-11
  • 淺談pycharm出現(xiàn)卡頓的解決方法

    淺談pycharm出現(xiàn)卡頓的解決方法

    今天小編就為大家分享一篇淺談pycharm出現(xiàn)卡頓的解決方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2018-12-12

最新評(píng)論

华坪县| 积石山| 许昌市| 冷水江市| 陆河县| 什邡市| 无极县| 周口市| 温泉县| 明水县| 广汉市| 武隆县| 深水埗区| 枝江市| 香格里拉县| 浏阳市| 嘉善县| 大田县| 靖安县| 北票市| 西乌珠穆沁旗| 临城县| 定襄县| 宝鸡市| 义马市| 景德镇市| 太和县| 肃南| 新宾| 岳阳市| 金华市| 榆中县| 夏邑县| 巨鹿县| 宁夏| 西和县| 奉节县| 宜兴市| 浦北县| 英吉沙县| 武陟县|