如何将列及其样式从 Excel 复制到 Word?

问题描述 投票:0回答:1

我想将excel文件中的数据转换为word文件中的表格,所以我使用pandas,我可以复制表格世界中每个单元格的内容,问题是单元格复制的内容没有样式有什么办法吗它,enter image description here我尝试过使用以下代码:

import pandas as pd
from docx import Document
df = pd.read_excel("file_excel.xlsx")
data_excel_to_list = df.values.tolist()
doc=Document("file_word.docx")
table=doc.tables[0]
table.cell(0,0).text=data_excel_to_list[0][0]
table.cell(0,1).text=data_excel_to_list[0][1]
table.cell(1,0).text=data_excel_to_list[1][0]
table.cell(1,1).text=data_excel_to_list[1][1]
doc.save("file_word.docx")
python pandas dataframe list python-docx
1个回答
0
投票

使用 python-docx https://pypi.org/project/python-docx/

import pandas as pd
from docx import Document
from docx.shared import Pt

df = pd.read_excel("file_excel.xlsx")

data_excel_to_list = df.values.tolist()

doc = Document()

num_rows, num_cols = df.shape
table = doc.add_table(rows=num_rows + 1, cols=num_cols)

for col_num, col_name in enumerate(df.columns):
    table.cell(0, col_num).text = col_name
    table.cell(0, col_num).paragraphs[0].runs[0].bold = True 

for row_num, row_data in enumerate(data_excel_to_list):
    for col_num, cell_value in enumerate(row_data):
        table.cell(row_num + 1, col_num).text = str(cell_value)
        table.cell(row_num + 1, col_num).paragraphs[0].runs[0].font.size = Pt(10)
        table.cell(row_num + 1, col_num).paragraphs[0].runs[0].italic = True

doc.save("file_word.docx")

© www.soinside.com 2019 - 2024. All rights reserved.