docx類庫是一個用于處理Microsoft Office Word(.docx)檔案的Python類庫,它提供了一組API可以讓開發者在Python中生成、修改、操作、查詢和讀取.docx檔案。docx類庫可以讓我們在編寫python程式時,可以更加友善地進行文本處理和操作。下面是docx類庫的一些應用示例、注意事項,以及常用示例:
- 建立新的.docx檔案
from docx import Document
document = Document()
document.add_heading('Document Title', 0)
document.save('document.docx')
- 打開已有的.docx檔案
from docx import Document
document = Document('existing-document.docx')
- 添加文本到.docx檔案并儲存
from docx import Document
document = Document()
document.add_paragraph('Hello, World!')
document.save('hello.docx')
- 設定段落樣式
from docx import Document
from docx.shared import Inches
document = Document()
# 添加帶格式的段落
p = document.add_paragraph('Sample Text')
p.style = 'Title'
document.save('sample.docx')
- 添加圖檔
from docx import Document
from docx.shared import Inches
document = Document()
document.add_picture('image.png', width=Inches(1.25))
document.save('sample.docx')
- 添加表格
from docx import Document
from docx.shared import Inches
document = Document()
table = document.add_table(rows=3, cols=3)
cell = table.cell(0, 0)
cell.text = 'Cell Content'
document.save('sample.docx')
- 擷取文本内容
from docx import Document
document = Document('example.docx')
for paragraph in document.paragraphs:
print(paragraph.text)
- 通路表格單元格中的内容
from docx import Document
document = Document('example.docx')
table = document.tables[0]
print(table.cell(0, 0).text)
- 通路段落屬性
from docx import Document
document = Document('example.docx')
paragraph = document.paragraphs[0]
print(paragraph.style.name)
- 替換文本
from docx import Document
document = Document('example.docx')
for paragraph in document.paragraphs:
if 'old_string' in paragraph.text:
paragraph.text = paragraph.text.replace('old_string', 'new_string')
document.save('updated_example.docx')
- 插入分頁符
from docx import Document
from docx.enum.section import WD_SECTION_START
document = Document()
section = document.add_section(WD_SECTION_START.NEW_PAGE)
document.save('new_page.docx')
- 設定頁面邊距
from docx import Document
from docx.shared import Inches
document = Document()
sections = document.sections
for section in sections:
section.top_margin = Inches(1)
section.bottom_margin = Inches(1)
section.left_margin = Inches(1)
section.right_margin = Inches(1)
document.save('margins.docx')
- 添加超連結
from docx import Document
from docx.shared import Inches
from docx.enum.text import WD_ALIGN_PARAGRAPH
from docx import Hyperlink
document = Document()
paragraph = document.add_paragraph('Link to Google')
hyperlink = paragraph.add_hyperlink('https://www.google.com/', 'Google', None, 'blue')
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
document.save('hyperlink.docx')
- 添加頁眉和頁腳
from docx import Document
from docx.enum.section import WD_SECTION_START
from docx.oxml.shared import qn
from docx.enum.text import WD_ALIGN_PARAGRAPH
document = Document()
section = document.sections[0]
header = section.header
table = header.add_table(rows=1, cols=2)
table.cell(0, 0).text = 'Header on the left'
table.cell(0, 1).text = 'Header on the right'
header.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
footer = section.footer
footer.paragraphs[0].text = 'Footer text'
footer.paragraphs[0].alignment = WD_ALIGN_PARAGRAPH.CENTER
document.save('header_footer.docx')
- 添加批注
from docx import Document
from docx.shared import RGBColor
from docx.enum.text import WD_ALIGN_PARAGRAPH
document = Document()
paragraph = document.add_paragraph('Text with comment. ')
comment = paragraph.add_comment('Comment text.', author='John Doe')
comment.color.rgb = RGBColor(255, 0, 0)
comment.initials = 'JD'
hyperlink_to_comment = document.add_paragraph()
hyperlink_to_comment.paragraph_format.alignment = WD_ALIGN_PARAGRAPH.CENTER
hyperlink_to_comment_run = hyperlink_to_comment.add_run()
hyperlink_to_comment_run.add_break()
hyperlink_to_comment_run.add_text('Go to Comment\n')
hyperlink = hyperlink_to_comment.add_hyperlink('', 'Comment', None, 'blue')
hyperlink.anchor = comment._element.xml_id
document.save('comment.docx')
16.設定段落對齊方式
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH
document = Document()
paragraph = document.add_paragraph('Centered Paragraph')
paragraph.alignment = WD_ALIGN_PARAGRAPH.CENTER
document.save('centered_paragraph.docx')
17.設定字型大小和顔色
from docx import Document
from docx.shared import Pt
from docx.shared import RGBColor
document = Document()
paragraph = document.add_paragraph('Sample Text')
paragraph.style.font.size = Pt(20)
paragraph.style.font.color.rgb = RGBColor(255, 0, 0)
document.save('font.docx')
18.設定文本框樣式
from docx import Document
from docx.enum.text import WD_BREAK_TYPE
from docx.shared import Cm
document = Document()
textbox = document.add_textbox(Cm(8), Cm(8))
paragraph = textbox.add_paragraph('This is a textbox.')
paragraph.style.name = 'BalloonText'
paragraph.add_run().add_break(WD_BREAK_TYPE.PAGE)
document.save('textbox.docx')
注意事項:
- docx類庫需要Python 3.6或更高版本才能運作。
- 在Windows作業系統下使用docx類庫,需要先安裝Microsoft Visual C++ 14.0.
- 對于一些比較複雜的.docx檔案,可能需要對docx類庫進行深度學習和掌握。