切換語言為:簡體
 使用 Python Docx 實現對 word 文件標題進行編號

使用 Python Docx 實現對 word 文件標題進行編號

  • 爱糖宝
  • 2024-07-18
  • 2134
  • 0
  • 0

Python-docx 是 Python 中一個強大的工具類庫,用於建立和操作 Word 文件(.docx)

python-docx 中的標題號是什麼?

標題編號是指定給文件中標題的數字或字母數字識別符號,用於表示其在文件層次結構中的位置。例如,“1.引言”、“2.方法”、“2.1 資料收集”等。這些數字有助於讀者理解文件的結構並輕鬆瀏覽它。

使用以下命令安裝:

pip 安裝 python-docx

使用 python-docx 設定標題數字的三個優秀程式碼示例

示例1:基本標題設定

在本例中,我們使用 python-docx 建立了一個帶有標題和副標題的簡單 Word 文件。 請注意,python-docx 不支援直接設定自動標題編號;不過我們可以依賴 Word 的渲染來實現。

from docx import Document
# Create a new Document
doc = Document()
# Add Heading 1
heading1 = doc.add_heading('Heading 1', level=1)
# Add Subheading 1.1 and 1.2
subheading1_1 = doc.add_heading('Subheading 1.1', level=2)
subheading1_2 = doc.add_heading('Subheading 1.2', level=2)
# Add Heading 2
heading2 = doc.add_heading('Heading 2', level=1)
# Add Subheading 2.1
subheading2_1 = doc.add_heading('Subheading 2.1', level=2)
# Save the document
doc.save('heading_example.docx')

輸出

 使用 Python Docx 實現對 word 文件標題進行編號

基本標題設定

示例2:自定義標題編號(手動)

在本例中,我們透過為標題新增文字字首來手動設定標題編號。 這種方法允許我們在文件內容中控制編號方案。

from docx import Document
# Create a new Document
doc = Document()
# Manually set heading numbers
headings = [
    ('Heading 1', 1),
    ('Subheading 1.1', 2),
    ('Subheading 1.2', 2),
    ('Heading 2', 1),
    ('Subheading 2.1', 2)
]
for text, level in headings:
    if level == 1:
        para = doc.add_paragraph()
        run = para.add_run(f'{level}. {text}')
        run.bold = True
    elif level == 2:
        para = doc.add_paragraph()
        run = para.add_run(f'{" " * 4 * (level - 1)}{level}.{text}')
# Save the document
doc.save('custom_heading_numbers.docx')

輸出

 使用 Python Docx 實現對 word 文件標題進行編號

自定義標題編號(手動)

示例 3:使用粗體和字型大小設定標題樣式

本示例演示如何新增具有特定樣式的標題,包括粗體文字和調整後面的字型大小。

from docx import Document
from docx.shared import Pt
from docx.enum.text import WD_PARAGRAPH_ALIGNMENT
# Create a new Document
doc = Document()
# Define heading styles
headings = [
    ('Heading 1', 1, Pt(18)),
    ('Subheading 1.1', 2, Pt(14)),
    ('Subheading 1.2', 2, Pt(14)),
    ('Heading 2', 1, Pt(18)),
    ('Subheading 2.1', 2, Pt(14))
]
for text, level, font_size in headings:
    para = doc.add_paragraph()
    run = para.add_run(text)
    
    # Set bold and font size
    run.bold = True
    font = run.font
    font.size = font_size
    
    # Adjust alignment if needed
    if level == 1:
        para.alignment = WD_PARAGRAPH_ALIGNMENT.CENTER
    elif level == 2:
        para.alignment = WD_PARAGRAPH_ALIGNMENT.LEFT
# Save the document
doc.save('styled_headings.docx')

輸出

 使用 Python Docx 實現對 word 文件標題進行編號

使用粗體和字型大小設定標題樣式

結論

這些示例說明了使用 python-docx 設定標題編號和樣式的不同方法,雖然 python-docx 不能直接控制自動標題編號,但您可以操作文字內容和樣式來實現結構化的文件佈局,您可以根據 Word 文件中標題編號和格式的具體要求調整這些示例。

0則評論

您的電子郵件等資訊不會被公開,以下所有項目均必填

OK! You can skip this field.