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

python使用python-docx處理word的方法示例

 更新時(shí)間:2025年01月05日 09:27:10   作者:禿了也弱了。  
本文介紹了python-docx模塊,用于自動(dòng)化操作Word文檔,包括創(chuàng)建、寫入和讀取Word文檔等方法,具有一定的參考價(jià)值,感興趣的可以了解一下

一、python-docx簡介

python自動(dòng)化操作Word最常用的模塊就是python-docx。

python-docx模塊處理word文檔,處理方式是面向?qū)ο蟮?。也就是說python-docx模塊會(huì)把word文檔,文檔中的段落、文本、字體等都看做對(duì)象,對(duì)對(duì)象進(jìn)行處理就是對(duì)word文檔的內(nèi)容處理。

如果需要讀取word文檔中的文字(一般來說,程序也只需要認(rèn)識(shí)word文檔中的文字信息),需要先了解python-docx模塊的幾個(gè)概念。
Word文檔一般可以結(jié)構(gòu)化成三個(gè)部分:

  • Document,表示一個(gè)word文檔
  • Paragraph,表示word文檔中的一個(gè)段落
  • Run,表示段落中的文字塊

在這里插入圖片描述

Document - Paragraph - Run三級(jí)結(jié)構(gòu),這是最普遍的情況。但是如果Word中存在表格,這時(shí)會(huì)有新的文檔結(jié)構(gòu),如下:

在這里插入圖片描述

這時(shí)的結(jié)構(gòu)非常類似Excel, 可以看成Document-Table-Row/Column-Cells四級(jí)結(jié)構(gòu)。

# 安裝
pip install python-docx

二、基本使用

1、新建與保存word

from docx import Document
document = Document() #創(chuàng)建一個(gè)空文檔
document.save(r'D:\自動(dòng)化\word\道德經(jīng).docx') # 保存文件

2、寫入Word

from docx import Document # 導(dǎo)入docx庫
from docx.shared import Inches, Cm # 導(dǎo)入英寸單位 厘米Cm (可用于指定圖片大小、表格寬高等)

# 打開一個(gè)document
file_path = r'D:\自動(dòng)化\word\道德經(jīng).docx'
document = Document(file_path)

# 設(shè)置標(biāo)題段落
document.add_heading('道德經(jīng)', 0)

# 添加段落
p = document.add_paragraph('道可道,非常道;名可名,非常名。')
p.add_run('無名,天地之始,').bold = True # 在指定段落后添加粗體文字
p.add_run('有名,') # 在指定段落后添加默認(rèn)格式文字
p.add_run('萬物之母。').italic = True # 在指定段落后添加斜體文字

# 添加1級(jí)標(biāo)題=標(biāo)題1
document.add_heading('故常無欲,', level=1)

# 添加指定格式段落 style后面則是樣式
document.add_paragraph('以觀其妙,', style='Intense Quote')
# 添加段落,樣式為List Bullet類型
document.add_paragraph('常有欲,以觀其徼。', style='List Bullet')
# 添加段落,樣式為List Number類型
document.add_paragraph('此兩者,同出而異名,同謂之玄,玄之又玄,眾妙之門。', style='ListNumber')
document.add_paragraph('所以說,霸夫老師教Python,教得妙。', style='List Number')

# 添加圖片
img_path = r'D:\自動(dòng)化\word\girl.png'
document.add_picture(img_path)
document.add_picture(img_path, width=Inches(1.25))
document.add_picture(img_path, width=Cm(5), height=Cm(5))

# 待添加到表格的內(nèi)容
records = (
	(1, '李白', '詩仙'),
	(2, '杜甫', '詩圣'),
	(3, '白居易', '香山居士, 與元稹并稱元白, 與劉禹錫合稱劉白')
)

# 添加一個(gè)1行3列的表格, 表格樣式為Table Grid
# 表格樣式參數(shù)可選,缺省時(shí)為Normal Table
# Normal Table
# Table Grid
# Light Shading、 Light Shading Accent 1 至 Light Shading Accent 6
# Light List、Light List Accent 1 至 Light List Accent 6
# Light Grid、Light Grid Accent 1 至 Light Grid Accent 6
# 太多了其它省略...
table = document.add_table(rows=1, cols=3, style='Table Grid')
# 填充標(biāo)題行
hdr_cells = table.rows[0].cells
hdr_cells[0].text = '序號(hào)'
hdr_cells[1].text = '姓名'
hdr_cells[2].text = '描述'

# 動(dòng)態(tài)添加數(shù)據(jù)行
for id, name, desc in records:
	row_cells = table.add_row().cells
	row_cells[0].text = str(id)
	row_cells[1].text = name
	row_cells[2].text = desc

document.add_paragraph('再添加一個(gè)表格')
# 待添加到表格的內(nèi)容
records2 = [
	["姓名", "性別", "家庭地址"],
	["貂蟬", "女", "河北省"],
	["楊貴妃", "女", "貴州省"],
	["西施", "女", "山東省"]
]

# 添加一個(gè)4行3列的表格
table2 = document.add_table(rows=4, cols=3, style='Light List Accent 5')

# 填充表格
for 行索引 in range(4):
	cells = table2.rows[行索引].cells
	for 列索引 in range(3):
		cells[列索引].text = str(records2[行索引][列索引])
# 添加分頁符
document.add_page_break()
# 保存文檔
document.save(file_path)

(1)打開文檔

Document()傳入?yún)?shù)是打開相應(yīng)的文檔,不傳參數(shù)則是創(chuàng)建一個(gè)空文檔。

# 創(chuàng)建一個(gè)空文檔
document = Document()
# 加載舊文檔(用于修改或添加內(nèi)容)
document = Document('exist.docx')

(2)添加標(biāo)題

level等級(jí)1-9 也就是標(biāo)題1-標(biāo)題9,我們可以在舊文檔中將標(biāo)題格式設(shè)置好,使用Python-docx打開舊文檔,再添加相應(yīng)等級(jí)標(biāo)題即可。

document.add_heading('一級(jí)標(biāo)題', level=1)

(3)添加段落

段落在 Word 中是基本內(nèi)容。它們用于正文文本,也用于標(biāo)題和項(xiàng)目列表(如項(xiàng)目符號(hào))。
添加段落的時(shí)候,賦值給一個(gè)變量,方便我們后面進(jìn)行格式調(diào)整。

p = document.add_paragraph('道可道,非常道;名可名,非常名。')
# 添加指定格式段落 style后面則是樣式
document.add_paragraph('以觀其妙,', style='Intense Quote')

(4)添加文字塊

在指定段落上添加文字塊。

p.add_run('無名,天地之始,').bold = True # 在指定段落后添加粗體文字
p.add_run('有名,') # 在指定段落后添加默認(rèn)格式文字
p.add_run('萬物之母。').italic = True # 在指定段落后添加斜體文字

(5)添加圖片

width, height可用于設(shè)置圖片尺寸,缺省時(shí)為圖片默認(rèn)大小。

document.add_picture('girl.png')
document.add_picture('girl.png', width=Inches(1.25))
document.add_picture('girl.png', width=Cm(5), height=Cm(5))

(6)添加表格

表格樣式style參數(shù)可選,缺省時(shí)默認(rèn)為Normal Table。
常用樣式有:
Normal Table
Table Grid
Light Shading、 Light Shading Accent 1 至 Light Shading Accent 6
Light List、Light List Accent 1 至 Light List Accent 6
Light Grid、Light Grid Accent 1 至 Light Grid Accent 6

# 添加一個(gè)4行3列的表格
table = document.add_table(rows=4, cols=3)
table = document.add_table(rows=4, cols=3, style='Light Shading Accent 2')

(7)添加分頁符

# 添加分頁符
document.add_page_break()

3、讀取word

'''
文檔.paragraphs可以獲取文檔中所有段落數(shù)據(jù),不包含表格,這里注意一點(diǎn)圖片跟分頁符也會(huì)計(jì)算在段落數(shù)據(jù)內(nèi)
段落.runs 可以獲取段落的所有文字塊
文檔.tables可以獲取文檔中所有表格數(shù)據(jù)
文檔.save (path) 可以用于保存修改后的文檔本身,同樣也可在將打開的文檔另存為新文檔
'''
from docx import Document
doc = Document(r'D:\自動(dòng)化\word\道德經(jīng).docx')

# 讀取 word 中所有內(nèi)容
for p in doc.paragraphs:
	print(p, p.text)

# 讀取指定段落中的所有run
for run in doc.paragraphs[1].runs:
	print(run, run.text)

# 讀取 word中所有表格內(nèi)容
for 表格 in doc.tables:
	print(表格)
	for 行 in 表格.rows:
		for 單元格 in 行.cells:
			print(單元格.text)

doc.save(r'D:\自動(dòng)化\word\另存為新文檔.docx')

到此這篇關(guān)于python使用python-docx處理word的方法示例的文章就介紹到這了,更多相關(guān)python-docx處理word內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家! 

相關(guān)文章

  • Python實(shí)現(xiàn)RabbitMQ6種消息模型的示例代碼

    Python實(shí)現(xiàn)RabbitMQ6種消息模型的示例代碼

    這篇文章主要介紹了Python實(shí)現(xiàn)RabbitMQ6種消息模型的示例代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2020-03-03
  • Python Django 頁面上展示固定的頁碼數(shù)實(shí)現(xiàn)代碼

    Python Django 頁面上展示固定的頁碼數(shù)實(shí)現(xiàn)代碼

    這篇文章主要介紹了Python Django 頁面上展示固定的頁碼數(shù)實(shí)現(xiàn)代碼,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友可以參考下
    2019-08-08
  • python的pywebview庫結(jié)合Flask和waitress開發(fā)桌面應(yīng)用程序完整代碼

    python的pywebview庫結(jié)合Flask和waitress開發(fā)桌面應(yīng)用程序完整代碼

    pywebview是輕量級(jí)Python庫,用于創(chuàng)建跨平臺(tái)桌面應(yīng)用,結(jié)合HTML/CSS/JS界面與Python交互,支持Windows/macOS/Linux,資源占用低,可與Flask、Waitress集成,便于開發(fā)、部署,本文給大家介紹python的pywebview庫結(jié)合Flask和waitress開發(fā)桌面應(yīng)用程序簡介,感興趣的朋友一起看看吧
    2025-07-07
  • 解決python super()調(diào)用多重繼承函數(shù)的問題

    解決python super()調(diào)用多重繼承函數(shù)的問題

    今天小編就為大家分享一篇解決python super()調(diào)用多重繼承函數(shù)的問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2019-06-06
  • Python django實(shí)現(xiàn)簡單的郵件系統(tǒng)發(fā)送郵件功能

    Python django實(shí)現(xiàn)簡單的郵件系統(tǒng)發(fā)送郵件功能

    這篇文章主要介紹了Python django實(shí)現(xiàn)簡單的郵件系統(tǒng)發(fā)送郵件功能,結(jié)合實(shí)例形式分析了django發(fā)送郵件的實(shí)現(xiàn)技巧與相關(guān)注意事項(xiàng),需要的朋友可以參考下
    2017-07-07
  • 詳解使用python crontab設(shè)置linux定時(shí)任務(wù)

    詳解使用python crontab設(shè)置linux定時(shí)任務(wù)

    本篇文章主要介紹了使用python crontab設(shè)置linux定時(shí)任務(wù),具有一定的參考價(jià)值,有需要的可以了解一下。
    2016-12-12
  • 微信公眾號(hào)腳本-獲取熱搜自動(dòng)新建草稿并發(fā)布文章

    微信公眾號(hào)腳本-獲取熱搜自動(dòng)新建草稿并發(fā)布文章

    本來想寫一個(gè)自動(dòng)化發(fā)布微信公眾號(hào)的小綠書的腳本,但是微信公眾號(hào)官網(wǎng)沒有小綠書的接口,那就寫一個(gè)獲取熱搜微信普通文章的腳本吧,這篇文章主要介紹了微信公眾號(hào)腳本-獲取熱搜自動(dòng)新建草稿并發(fā)布文章
    2025-04-04
  • Win下PyInstaller 安裝和使用教程

    Win下PyInstaller 安裝和使用教程

    pyinstaller是一個(gè)非常簡單的打包python的py文件的庫,這篇文章主要介紹了PyInstaller-Win安裝和使用教程,本文通過流程實(shí)例相結(jié)合給大家介紹的非常詳細(xì),需要的朋友可以參考下
    2019-12-12
  • PyCharm創(chuàng)建Django項(xiàng)目的簡單步驟記錄

    PyCharm創(chuàng)建Django項(xiàng)目的簡單步驟記錄

    PyCharm是一種Python?IDE,帶有一整套可以幫助用戶在使用Python語言開發(fā)時(shí)提高其效率的工具,下面這篇文章主要給大家介紹了關(guān)于利用PyCharm創(chuàng)建Django項(xiàng)目的簡單步驟,需要的朋友可以參考下
    2022-07-07
  • python基于Bokeh庫制作子彈圖及瀑布圖示例教程

    python基于Bokeh庫制作子彈圖及瀑布圖示例教程

    這篇文章主要為大家介紹了python基于Bokeh庫制作子彈圖及瀑布圖的實(shí)現(xiàn)示例教程,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步早日升職加薪
    2021-10-10

最新評(píng)論

南通市| 凤山市| 泌阳县| 浙江省| 通海县| 宿迁市| 武威市| 益阳市| 临泽县| 牙克石市| 措勤县| 长丰县| 山丹县| 望都县| 永康市| 揭阳市| 清镇市| 霍城县| 亳州市| 寿光市| 金溪县| 常德市| 雅安市| 兴仁县| 托克逊县| 五河县| 获嘉县| 通山县| 社旗县| 成都市| 佛冈县| 台前县| 延寿县| 郓城县| 苏州市| 郧西县| 光泽县| 临海市| 孝义市| 镇坪县| 莒南县|