Python 修改 Word 保留格式

在处理文本数据时,我们经常会遇到需要修改 Word 文档的情况。Python 提供了多个库用于处理 Word 文档,如 python-docxpywin32等。本文将重点介绍使用 python-docx 库来修改 Word 文档并保留原有格式。

安装 python-docx 库

首先,我们需要安装 python-docx 库。可以使用以下命令在命令行中进行安装:

pip install python-docx

创建 Word 文档

在开始之前,我们需要先创建一个 Word 文档作为示例。我们可以使用 Microsoft Word 打开一个空白文档,然后输入一些内容,并设置一些格式化选项,如字体、字号、颜色等。

导入 python-docx 库

在开始修改 Word 文档之前,我们需要导入 python-docx 库。可以使用以下代码:

import docx

打开 Word 文档

在进行修改之前,我们需要打开 Word 文档。可以使用以下代码打开一个已存在的 Word 文档:

doc = docx.Document("<path_to_word_document>")

获取 Word 文档内容

我们可以使用 paragraphs 属性获取 Word 文档中的段落。段落是 Word 文档中的一个文本块,通常以换行符分隔。可以使用以下代码获取所有段落的文本内容:

paragraphs = doc.paragraphs

for paragraph in paragraphs:
    text = paragraph.text
    print(text)

修改 Word 文档内容

有时候,我们需要修改 Word 文档中的某些内容。可以使用以下代码修改指定段落的文本内容:

paragraph = doc.paragraphs[0]
paragraph.text = "新的文本内容"

保留原有格式

要保留 Word 文档的原有格式,我们可以使用以下代码将一个段落的格式复制到另一个段落:

source_paragraph = doc.paragraphs[0]
target_paragraph = doc.add_paragraph()

target_paragraph.style = source_paragraph.style
for run in source_paragraph.runs:
    new_run = target_paragraph.add_run(run.text)
    new_run.bold = run.bold
    new_run.italic = run.italic
    new_run.underline = run.underline
    new_run.font.name = run.font.name
    new_run.font.size = run.font.size
    new_run.font.color.rgb = run.font.color.rgb

以上代码将源段落的样式应用于目标段落,并复制源段落中的所有运行(run)及其格式。

保存修改后的 Word 文档

修改完 Word 文档后,我们需要将修改保存到文件中。可以使用以下代码将修改后的文档保存为一个新文件:

doc.save("<path_to_save_document>")

示例

下面是一个完整的示例代码,用于修改 Word 文档并保留原有格式:

import docx

# 打开 Word 文档
doc = docx.Document("sample.docx")

# 获取文档段落
paragraphs = doc.paragraphs

# 修改文档内容
paragraphs[0].text = "新的文本内容"

# 保留原有格式
source_paragraph = paragraphs[0]
target_paragraph = doc.add_paragraph()

target_paragraph.style = source_paragraph.style
for run in source_paragraph.runs:
    new_run = target_paragraph.add_run(run.text)
    new_run.bold = run.bold
    new_run.italic = run.italic
    new_run.underline = run.underline
    new_run.font.name = run.font.name
    new_run.font.size = run.font.size
    new_run.font.color.rgb = run.font.color.rgb

# 保存修改后的文档
doc.save("modified_sample.docx")

总结

使用 python-docx 库可以方便地修改 Word 文档并保留原有格式。通过打开文档、获取段落、修改内容、复制样式,并保存修改后的文档,我们可以轻松地处理 Word 文档的格式化问题。

注意:本文示例中的 Word 文档路径为相对路径,请根据实际情况修改为正确的文档路径。

序列图如下所示:

sequenceDiagram
    participant Python
    participant Word Document

    Python->>Word Document: 打开 Word 文档