如何克隆/复制.docx文件,并使用python docx保留所有样式和对齐方式

2024-09-30 10:30:58 发布

您现在位置:Python中文网/ 问答频道 /正文

我想克隆docx文件及其所有样式和对齐方式。这是我的代码:

import docx
from docx import Document

doc = docx.Document('my_word_file.docx')
allText = []
for docpara in doc.paragraphs:
    allText.append((docpara.text).replace('a' ,'s')

mydoc = docx.Document()
mydoc.add_paragraph(allText)
mydoc.save("cloned.docx")

所以我正在修复一些错误,文件正在保存,但没有样式、选项卡或输入。 如何保存更改和样式


Tags: 文件代码fromimportdocmy方式样式
1条回答
网友
1楼 · 发布于 2024-09-30 10:30:58

我认为,方法是编写自己的函数来复制每个段落的文本和样式。以下是您可以做的第一个实现:

from docx import Document

def copy_paragraph(output_doc, paragraph):

    output_paragraph = output_doc.add_paragraph()
    # Alignment data of whole paragraph
    output_paragraph.paragraph_format.alignment = paragraph.paragraph_format.alignment
    for row in paragraph.runs:
        output_row = output_paragraph.add_run(row.text)
        # Font data
        output_row.style.name = row.style.name
        # Size of font data
        output_row.font.size = row.font.size
        # Bold data
        output_row.bold = row.bold
        # Italic data
        output_row.italic = row.italic
        # Underline data
        output_row.underline = row.underline
        # Color data
        output_row.font.color.rgb = row.font.color.rgb
    
doc = Document('my_word_file.docx')
mydoc = Document()
for paragraph in doc.paragraphs:
    copy_paragraph(mydoc, paragraph)
mydoc.save("cloned.docx")

我不排除可能需要复制其他参数(例如文本的突出显示等)。在本例中,我建议您进行一些测试,并参考编写得非常好的docx documentation

相关问题 更多 >

    热门问题