您好,登錄后才能下訂單哦!
Python操作word文檔的示例分析,很多新手對此不是很清楚,為了幫助大家解決這個難題,下面小編將為大家詳細講解,有這方面需求的人可以來學習下,希望你能有所收獲。
python-docx 不支持 doc 文檔,一定要注意該點,如果使用 doc 文檔,需要提前將其用 Word 相關軟件轉換為 docx 格式。 doc 和 docx 是存在本質差異的,一個是二進制,另一個 XML 格式的文件。
模塊的安裝 pip install python-docx
。
以下網址首先準備好
官方手冊:https://python-docx.readthedocs.io/en/latest/index.html
pypi 官方地址:https://pypi.org/project/python-docx/
資料準備完畢,即可進入編碼環節。
第一個需求,創建一個文檔,并在里面寫入各種信息。
注意下文中的 add_heading()
函數的用法。
from docx import Document # 創建 Document 對象,等價于在電腦上打開一個 Word 文檔 document = Document() # 在 Word 文檔中添加一個標題 document.add_heading('這是一個標題',level=0) # 保存文檔 document.save('demo.docx')
注意下文中 add_paragraph()
函數添加段落,使用 add_run()
追加文本
from docx import Document # 創建 Document 對象,等價于在電腦上打開一個 Word 文檔 document = Document() # 在 Word 文檔中添加一個標題 document.add_heading('這是一個標題', level=0) # 文檔添加段落 p = document.add_paragraph('這是白給的段落') # 添加帶樣式的文字 # 添加段落,文本可以包含制表符(\t)、換行符(\n)或回車符(\r)等 # add_run() 在段落后面追加文本 p.add_run('\n我傾斜了').italic = True # 添加一個傾斜文字 p.add_run('\n我加粗了').bold = True # 添加一個加粗文字 # 保存文檔 document.save('demo.docx')
在段落前面增加文字
p.add_run('\n我傾斜了').italic = True # 添加一個傾斜文字 p.add_run('\n我加粗了').bold = True # 添加一個加粗文字 # 段落前面插入內容 prep_p = p.insert_paragraph_before('段落之前插入內容')
段落還可以添加分頁符,代碼如下所示:
# 段落前面插入內容 prep_p = p.insert_paragraph_before('段落之前插入內容') document.add_page_break() p1 = document.add_paragraph('新頁新段落')
無序列表的添加
# 添加列表(前面一個小圓點) document.add_paragraph('我前面是小圓點', style='List Bullet') # 添加列表(前面一個小圓點) document.add_paragraph('第二個小圓點', style='List Bullet')
有序列表的添加
# 添加列表(前面數字) document.add_paragraph('我前面是數字', style='List Number') # 添加列表(前面數字) document.add_paragraph('第二個數字', style='List Number')
Document 對象具備的方法如下所示:
add_heading(self, text='', level=1)
:添加標題;
add_page_break(self)
:分頁符;
add_paragraph(self, text='', style=None)
:添加段落;
add_picture(self, image_path_or_stream, width=None, height=None)
:添加圖片;
add_section(self, start_type=2)
:添加節;
add_table(self, rows, cols, style=None)
:添加表格;
本部分重點學習 add_picture()
方法。
document.add_picture(r"../9.png", width=Inches(1))
add_picture()
函數中參數 image_path_or_stream
可以為相對地址或者絕對地址,也可以是一個圖片數據流,上述代碼中 Inches
表示英寸,除此之外, python-docx
還提供了厘米 (Cm) ,如設置 1厘米: Cm(1) ,使用的時候需要提前導入 from docx.shared import Inches, Cm
。
使用 add_table()
函數,可以在 Word 文檔中添加表格。
p1 = document.add_paragraph('新頁新段落') # 添加一個 2×2 表格 table = document.add_table(rows=2, cols=2) # 獲取第1行第2列單元格 cell = table.cell(0, 1) # 設置單元格文本 cell.text = '第1行第2列' # 獲取第2行 row = table.rows[1] row.cells[0].text = '橡皮擦' row.cells[1].text = '喬喻'
學習的時候注意一下相關注釋,即可掌握該部分內容。
設置格式需要用 add_run()
,直接使用 add_paragraph()
生成的段落不能直接設置字體等樣式。
# 模塊的導入 from docx.shared import Pt, Cm, Inches from docx.oxml.ns import qn from docx.enum.text import WD_ALIGN_PARAGRAPH from docx.shared import RGBColor # 一級標題 level=0 head0 = document.add_heading(level=0) # 標題居中 head0.alignment = WD_ALIGN_PARAGRAPH.CENTER title_run = head0.add_run('這是一個居中的標題', ) title_run.font.size = Pt(24) # 標題英文字體 title_run.font.name = 'Times New Roman' # 標題中文字體 title_run.element.rPr.rFonts.set(qn('w:eastAsia'), '微軟雅黑') # 字體顏色 title_run.font.color.rgb = RGBColor(4, 60, 169)
其中 WD_ALIGN_PARAGRAPH
對象表示段落對其的方式,其值包括如下內容
WD_ALIGN_PARAGRAPH. LEFT
:左對齊;
WD_ALIGN_PARAGRAPH. CENTER
:居中對其;
WD_ALIGN_PARAGRAPH. RIGHT
:右對齊;
WD_ALIGN_PARAGRAPH. JUSTIFY
:兩端對齊;
行距,段間距 line_spacing
屬性用來設置行距, space_before
表示段前距, space_after
表示段后距。
斜體,下劃線,粗體設置
font.italic = True #設置斜體 font.underline = True #設置下劃線 font.bold = True #設置粗體
首行縮進 paragraph_format_line_indent
可以設置縮進值。
其它設置 除了上述內容外,還可以通過 document.styles.add_style('textstyle', WD_STYLE_TYPE. PARAGRAPH)
,使用 add_style()
方法創建新的樣式對象,后續就可以通過提供的屬性進行樣式設置,設置字體使用 font.size
,設置字體顏色為 font.color
。
然后在添加段落的時候,就可以應用該屬性了。
from docx.shared import RGBColor from docx.enum.style import WD_STYLE_TYPE style = document.styles.add_style('textstyle', WD_STYLE_TYPE.PARAGRAPH) # 字體大小 style.font.size = Pt(16) # 字體顏色 style.font.color.rgb = RGBColor(66, 100, 0) p1 = document.add_paragraph('神人橡皮擦',style=style)
頁眉和頁腳可以直接設置,參考代碼如下所示
header = document.sections[0].header header.add_paragraph('橡皮擦的頁眉')
頁腳設置
footer = document.sections[0].footer
1、云計算,典型應用OpenStack。2、WEB前端開發,眾多大型網站均為Python開發。3.人工智能應用,基于大數據分析和深度學習而發展出來的人工智能本質上已經無法離開python。4、系統運維工程項目,自動化運維的標配就是python+Django/flask。5、金融理財分析,量化交易,金融分析。6、大數據分析。
看完上述內容是否對您有幫助呢?如果還想對相關知識有進一步的了解或閱讀更多相關文章,請關注億速云行業資訊頻道,感謝您對億速云的支持。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。