天天看點

Python類庫docx

作者:風趣運維工程獅

docx類庫是一個用于處理Microsoft Office Word(.docx)檔案的Python類庫,它提供了一組API可以讓開發者在Python中生成、修改、操作、查詢和讀取.docx檔案。docx類庫可以讓我們在編寫python程式時,可以更加友善地進行文本處理和操作。下面是docx類庫的一些應用示例、注意事項,以及常用示例:

  1. 建立新的.docx檔案
from docx import Document

document = Document()
document.add_heading('Document Title', 0)
document.save('document.docx')
           
  1. 打開已有的.docx檔案
from docx import Document

document = Document('existing-document.docx')
           
  1. 添加文本到.docx檔案并儲存
from docx import Document

document = Document()
document.add_paragraph('Hello, World!')
document.save('hello.docx')
           
  1. 設定段落樣式
from docx import Document
from docx.shared import Inches

document = Document()

# 添加帶格式的段落
p = document.add_paragraph('Sample Text')
p.style = 'Title'

document.save('sample.docx')
           
  1. 添加圖檔
from docx import Document
from docx.shared import Inches

document = Document()

document.add_picture('image.png', width=Inches(1.25))

document.save('sample.docx')
           
  1. 添加表格
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')
           
  1. 擷取文本内容
from docx import Document

document = Document('example.docx')
for paragraph in document.paragraphs:
    print(paragraph.text)
           
  1. 通路表格單元格中的内容
from docx import Document

document = Document('example.docx')
table = document.tables[0]
print(table.cell(0, 0).text)
           
  1. 通路段落屬性
from docx import Document

document = Document('example.docx')
paragraph = document.paragraphs[0]
print(paragraph.style.name)
           
  1. 替換文本
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')
           
  1. 插入分頁符
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')
           
  1. 設定頁面邊距
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')
           
  1. 添加超連結
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')
           
  1. 添加頁眉和頁腳
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')
           
  1. 添加批注
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')
           

注意事項:

  1. docx類庫需要Python 3.6或更高版本才能運作。
  2. 在Windows作業系統下使用docx類庫,需要先安裝Microsoft Visual C++ 14.0.
  3. 對于一些比較複雜的.docx檔案,可能需要對docx類庫進行深度學習和掌握。