使用Python創(chuàng)建讀取和修改Word文檔
自動(dòng)化文檔處理是提升工作效率的關(guān)鍵路徑之一,而Python憑借其簡(jiǎn)潔語(yǔ)法和豐富的生態(tài)工具鏈,是實(shí)現(xiàn)文檔自動(dòng)化處理的理想工具。通過(guò)編程手段批量生成結(jié)構(gòu)規(guī)范的合同模板、動(dòng)態(tài)注入數(shù)據(jù)分析結(jié)果生成可視化報(bào)告,或是快速提取海量文檔中的關(guān)鍵信息,這種代碼驅(qū)動(dòng)的工作流不僅消除了人工重復(fù)操作帶來(lái)的誤差風(fēng)險(xiǎn),更將文檔處理從機(jī)械勞動(dòng)升級(jí)為可擴(kuò)展的智能系統(tǒng)。本文將介紹如何使用Python實(shí)現(xiàn)Word文檔的創(chuàng)建、讀取及修改。
本文所使用的方法需要用到免費(fèi)的Free Spire.Doc for Python,PyPI:pip install spire.doc.free
。
用Python創(chuàng)建Word文檔
我們可以通過(guò)創(chuàng)建Document實(shí)例來(lái)創(chuàng)建Word文檔,然后在文檔中添加節(jié)(Document.AddSection)、段落(Section.AddParagraph)以及文本(Paragraph.AppendText),并對(duì)其進(jìn)行格式設(shè)置,從而實(shí)現(xiàn)個(gè)性化的Word文檔創(chuàng)建。以下是操作步驟示例:
- 實(shí)例化Document類從而創(chuàng)建Word文檔。
- 使用Document.AddSection()方法在文檔中添加一個(gè)節(jié),并通過(guò)Section.PageSetup自定義節(jié)的頁(yè)面設(shè)置。
- 通過(guò)ParagraphStyle類創(chuàng)建段落樣式并使用Document.Styles.Add()方法將樣式添加到文檔中。
- 使用Section.AddParagraph()方法在節(jié)中添加段落。
- 使用Paragraph.ApplyStyle()方法應(yīng)用段落樣式。
- 使用Document.SaveToFile()方法或Document.SaveToStream()方法保存創(chuàng)建的文檔。
- 釋放資源。
代碼示例
from spire.doc import * # 實(shí)例化Document類從而創(chuàng)建Word文檔 doc = Document() # 添加一個(gè)節(jié)到文檔中 section = doc.AddSection() # 設(shè)置頁(yè)邊距 section.PageSetup.Margins.Top = 50 section.PageSetup.Margins.Bottom = 50 section.PageSetup.Margins.Left = 50 section.PageSetup.Margins.Right = 50 # 添加標(biāo)題段落 titleParagraph = section.AddParagraph() titleParagraph.AppendText("數(shù)字時(shí)代的隱秘角落") titleParagraph.ApplyStyle(BuiltinStyle.Heading2) # 創(chuàng)建正文段落樣式 bodyStyle = ParagraphStyle(doc) bodyStyle.Name = "BodyStyle" bodyStyle.CharacterFormat.FontName = "黑體" bodyStyle.CharacterFormat.FontSize = 12 bodyStyle.CharacterFormat.TextColor = Color.get_Brown() # 將樣式添加到文檔中 doc.Styles.Add(bodyStyle) # 添加正文段落 bodyParagraph = section.AddParagraph() bodyParagraph.AppendText("在這個(gè)高度數(shù)字化的時(shí)代,每一秒鐘都有海量的信息被創(chuàng)建、分享和遺棄。" "我們習(xí)慣于快速滾動(dòng)過(guò)無(wú)數(shù)的更新動(dòng)態(tài),追逐最新的趨勢(shì)和技術(shù)。" "然而,在這個(gè)過(guò)程中,許多珍貴的“網(wǎng)絡(luò)遺產(chǎn)”正在被悄然遺忘。" "這些遺產(chǎn)包括早期互聯(lián)網(wǎng)用戶的創(chuàng)意作品、已停止運(yùn)營(yíng)的在線社區(qū)的記憶以及那些曾經(jīng)風(fēng)靡一時(shí)但現(xiàn)在無(wú)人問(wèn)津的數(shù)字內(nèi)容。" "它們不僅僅是數(shù)據(jù)堆砌而成的遺跡,更是人類探索數(shù)字領(lǐng)域歷程的見(jiàn)證。" "通過(guò)探索這些被遺忘的角落,我們可以更好地理解互聯(lián)網(wǎng)文化的發(fā)展脈絡(luò),并從中汲取對(duì)未來(lái)創(chuàng)新有益的經(jīng)驗(yàn)與教訓(xùn)。" "這不僅是一次對(duì)過(guò)去的回顧,更是一場(chǎng)關(guān)于如何在瞬息萬(wàn)變的數(shù)字世界中保存人類共同記憶的深刻思考。") # 將正文段落樣式應(yīng)用到段落中 bodyParagraph.ApplyStyle(bodyStyle.Name) # 保存文檔 doc.SaveToFile("output/Example.docx", FileFormat.Docx2019) doc.Close()
結(jié)果
用Python讀取Word文檔文本
如果我們需要讀取現(xiàn)有Word文檔中的文本內(nèi)容為字符串,從而方便進(jìn)行其他操作或進(jìn)一步處理,可以使用Document.LoadFromFile或Document.LoadFromStream方法載入Word文檔,然后直接使用Document.GetText方法獲取文檔中的所有文本內(nèi)容。以下是操作步驟示例:
- 創(chuàng)建Document對(duì)象。
- 使用Document.LoadFromFile()方法從文件載入Word文檔,或使用Document.LoadFromStream()方法從流載入Word文檔。
- 使用Document.GetText()方法獲取文檔中的所有文本內(nèi)容。
- 輸出讀取的內(nèi)容或用于其他操作。
代碼示例
from spire.doc import Document # 創(chuàng)建Document對(duì)象 doc = Document() # 載入Word文檔 doc.LoadFromFile("output/Example.docx") # 獲取文檔中的所有文本為字符串 text = doc.GetText() # 輸出獲取到的字符串 print(text)
結(jié)果
用Python修改Word文檔
我們也可以使用Free Spire.Doc for Python載入Word文檔,并直接使用庫(kù)中的類和方法對(duì)文檔進(jìn)行修改。以下是操作步驟示例:
- 創(chuàng)建Document對(duì)象。
- 使用Document.LoadFromFile()方法從文件載入Word文檔,或使用Document.LoadFromStream()方法從流載入Word文檔。
- 使用Document.Sections.get_Item()方法獲取一個(gè)節(jié)。
- 使用Section.PageSetup下的屬性修改頁(yè)面設(shè)置。
- 使用Section.Paragraphs.get_Item()方法獲取節(jié)中的段落。
- 使用Paragraph.Text屬性設(shè)置新的段落文本。
- 使用Paragraph.ApplyStyle()方法更改段落樣式。
- 使用Document.SaveToFile()方法或Document.SaveToStream()方法保存修改后的文檔。
代碼示例
from spire.doc import Document, BuiltinStyle # 創(chuàng)建Document對(duì)象 doc = Document() # 載入Word文檔 doc.LoadFromFile("output/Example.docx") # 獲取文檔第一節(jié) section = doc.Sections.get_Item(0) # 修改節(jié)的左右頁(yè)邊距 section.PageSetup.Margins.Left = 100 section.PageSetup.Margins.Right = 100 # 獲取節(jié)中的第一個(gè)段落 para = section.Paragraphs.get_Item(0) # 修改段落文本 para.Text = "探索被遺忘的網(wǎng)絡(luò)遺產(chǎn)" # 修改段落樣式 para.ApplyStyle(BuiltinStyle.Heading1) # 保存修改后的文檔 doc.SaveToFile("output/ModifiedExample.docx") doc.Close()
結(jié)果
到此這篇關(guān)于使用Python創(chuàng)建讀取和修改Word文檔的文章就介紹到這了,更多相關(guān)Python操作Word內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
淺談python3發(fā)送post請(qǐng)求參數(shù)為空的情況
今天小編就為大家分享一篇淺談python3發(fā)送post請(qǐng)求參數(shù)為空的情況,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12python實(shí)現(xiàn)飛機(jī)大戰(zhàn)微信小游戲
這篇文章主要為大家詳細(xì)介紹了python實(shí)現(xiàn)飛機(jī)大戰(zhàn)微信小游戲,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-09-09Anaconda中導(dǎo)出環(huán)境的實(shí)現(xiàn)步驟
在 Anaconda 中導(dǎo)出環(huán)境是一種常用的做法,可以將當(dāng)前的環(huán)境配置導(dǎo)出到一個(gè)文件中,本文主要介紹了Anaconda中導(dǎo)出環(huán)境的實(shí)現(xiàn)步驟,具有一定的參考價(jià)值2024-05-05Python列表創(chuàng)建與銷毀及緩存池機(jī)制
這篇文章主要介紹了Python列表創(chuàng)建與銷毀及緩存池機(jī)制,文章基于python展開(kāi)對(duì)列表創(chuàng)建與銷毀內(nèi)容的展開(kāi),具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-05-05教你使用Python寫一個(gè)簡(jiǎn)單的JSONParser
這篇文章主要介紹了教你使用Python寫一個(gè)簡(jiǎn)單的JSONParser,它的整個(gè)效果,有點(diǎn)類似于 python 標(biāo)準(zhǔn)庫(kù) json 的 json.load() 方法,需要的朋友可以參考下2023-04-04Django中modelform組件實(shí)例用法總結(jié)
在本篇文章里小編給大家整理的是關(guān)于Django中modelform組件實(shí)例用法內(nèi)容,有興趣的朋友們可以跟著學(xué)習(xí)下。2020-02-02python對(duì)excel文檔去重及求和的實(shí)例
下面小編就為大家分享一篇python對(duì)excel文檔去重及求和的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-04-04Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例
這篇文章主要介紹了Python爬取網(wǎng)站圖片并保存的實(shí)現(xiàn)示例,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-02-02python學(xué)習(xí)字符串駐留與常量折疊隱藏特性詳解
這篇文章主要為大家介紹了python學(xué)習(xí)中字符串駐留與常量折疊的一些隱藏特性,并給大家進(jìn)行了詳細(xì)分析,有需要的朋友可以借鑒參考下,希望能夠有所幫助2021-09-09