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