Мне нужно находить определенное ключевое слово в docx документе и вставлять туда таблицу из xlsx документа, вместе со всеми стилями. Но проблема, оно этого не делает почему-то. Вставляет без стилей и без границ. Вот код:
from openpyxl import load_workbook
from docx import Document
from docx.shared import Inches
def create_file():
# Загрузка данных из файла Excel
workbook = load_workbook('df_general.xlsx')
worksheet = workbook.active
data = []
for row in worksheet.iter_rows(values_only=True):
data.append(row)
# Открытие шаблона Word
document = Document('шаблон.docx')
# Поиск места для вставки таблицы
for paragraph in document.paragraphs:
if '{{table_df_general.xlsx}}' in paragraph.text:
# Создание таблицы в документе Word
table = document.add_table(rows=len(data), cols=len(data[0]))
# Вставка данных из файла Excel
for i, row in enumerate(table.rows):
for j, cell in enumerate(row.cells):
cell.text = str(data[i][j])
# Копирование форматирования из таблицы "example_table"
example_table = document.tables[0]
for source_row, target_row in zip(example_table.rows, table.rows):
for source_cell, target_cell in zip(source_row.cells, target_row.cells):
target_cell.width = source_cell.width
target_cell.paragraphs[0].alignment = source_cell.paragraphs[0].alignment
# Копирование форматирования шрифта
source_font = source_cell.paragraphs[0].runs[0].font
target_font = target_cell.paragraphs[0].runs[0].font
target_font.name = source_font.name
target_font.size = source_font.size
target_font.bold = source_font.bold
target_font.italic = source_font.italic
target_font.underline = source_font.underline
target_font.color.rgb = source_font.color.rgb
# Удаление места для вставки таблицы
paragraph.text = paragraph.text.replace('{{table_df_general.xlsx}}', '')
document.save('df_general.docx')
def main():
create_file()
if __name__ == '__main__':
main()
В чем проблема?