[918] Copy the formatting from one cell in a table of a Word document to another cell in Python

发布时间 2023-10-20 10:04:51作者: McDelfino

To copy the formatting from one cell in a table of a Word document to another cell, you can use the python-docx library in Python. Here's a step-by-step guide on how to do this:

  1. First, make sure you have the python-docx library installed. If not, you can install it using pip:
  2. Create or open your Word document that contains the table with cells you want to copy the format from.

  3. Use the following code to copy the cell's format from one cell to another:

from docx import Document
from docx.shared import Pt

# Open the Word document
doc = Document("your_document.docx")

# Define the source and target cells within the table
source_row_index = 0  # Row index of the source cell
source_col_index = 0  # Column index of the source cell
target_row_index = 1  # Row index of the target cell
target_col_index = 1  # Column index of the target cell

# Get the source and target cells
source_cell = doc.tables[0].cell(source_row_index, source_col_index)
target_cell = doc.tables[0].cell(target_row_index, target_col_index)

# Copy formatting from the source cell to the target cell
for source_paragraph, target_paragraph in zip(source_cell.paragraphs, target_cell.paragraphs):
    for source_run, target_run in zip(source_paragraph.runs, target_paragraph.runs):
        target_run.bold = source_run.bold
        target_run.italic = source_run.italic
        target_run.underline = source_run.underline
        target_run.font.size = Pt(source_run.font.size.pt)

# Save the modified document
doc.save("modified_document.docx")

In the code above:

  • We open the Word document ("your_document.docx") using the Document class from the python-docx library.

  • We specify the row and column indices for the source cell (the cell from which you want to copy the format) and the target cell (the cell to which you want to apply the format).

  • We retrieve the source and target cells from the specified table.

  • We iterate through the paragraphs and runs in the source and target cells to copy various formatting attributes, such as bold, italic, underline, and font size.

  • Finally, we save the modified document with a new name ("modified_document.docx").

Make sure to replace "your_document.docx" with the path to your own Word document, and adjust the row and column indices to specify the source and target cells you are interested in. After running the script, the target cell will have the same formatting as the source cell.