在Django项目开发中需要替换word中表格里的内容以自动生成报告,但各种教程中只有不修改格式替换段落内容,对于表格中单元格的内容替换后保留原格式没有找到方法,但是通过分析发现,可以将单元格的cell当作段落来处理,实现不修改格式,通过验证证明方法可行!
# 打开文档
document = Document("app01/utils/table02.docx")
# 遍历所有表格的单元格
for table in document.tables:
for row in table.rows:
for cell in row.cells:
# 如果只是为了内容,直接替换cell.text,但是为了保存原有格式,需要将每个单元格的文本当作一段看待,以此提取出run来不修改原格式
if cell.text in data:
for paragraph in cell.paragraphs:
for run in paragraph.runs:
run.text = str(data[run.text])
# 水平居中
cell.paragraphs[0].paragraph_format.alignment = WD_TABLE_ALIGNMENT.CENTER
# 垂直居中
cell.vertical_alignment = WD_CELL_VERTICAL_ALIGNMENT.CENTER
# 保存文档
document.save("app01/utils/table02_back.docx")