[920] Copy the font style from one cell in a table of a Word document to another cell using Python

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

To copy the font style from one cell in a table of a Word document to another cell using Python and the python-docx library, you can access the font properties of the source cell and apply them to the target cell. Here's how you can do it:

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

  2. Use the following code to copy the font style from one cell to another:

from docx import Document

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

# Define the row and column indices for the source and target cells
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)

# Get the font style of the source cell
source_font = source_cell.paragraphs[0].runs[0].font

# Apply the font style to the target cell
for paragraph in target_cell.paragraphs:
    for run in paragraph.runs:
        run.font.name = source_font.name
        run.font.size = source_font.size
        run.font.bold = source_font.bold
        run.font.italic = source_font.italic
        run.font.underline = source_font.underline
        run.font.color.rgb = source_font.color.rgb

# 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 you want to copy the font style from) and the target cell (the cell to which you want to apply the font style).

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

  • We obtain the font style properties of the source cell's first paragraph run.

  • We iterate through the paragraphs and runs of the target cell and apply the font style properties (name, size, bold, italic, underline, and color) to each run.

  • 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 font style as the source cell.