问题背景
将excel表中的成绩内容制作为成绩单,每页对应一个学员的成绩,方便打印
代码实现
## 导入包
import pandas as pd
from docx import Document
from docx.enum.text import WD_ALIGN_PARAGRAPH,WD_LINE_SPACING
# 读取 Excel 内容
df = pd.read_excel('./汇总的内容.xlsx')
## 实例化一个
document = Document()
## 循环写入多个表
for i in range(len(df)):
# 增加一级标题
document.add_heading(f'{df.loc[i,"企业"]}的表', level=1)
## 每个表格之间添加一个空行或者添加一句话
document.add_paragraph(f'请{df.loc[i,"企业"]}于{df.loc[i,"日期"]}前,尽快完成以下表格填写。')
## 新建一个表,设置单元格样式:https://blog.csdn.net/ibiao/article/details/78595295
table = document.add_table(3, 4, style="Table Grid")
## 第一行
heading_cells = table.rows[0].cells
# 每一列
heading_cells[0].text = f'{df.loc[i,"序号"]}'
heading_cells[1].text = f'{df.loc[i,"日期"]}'
heading_cells[2].text = f'{df.loc[i,"企业"]}'
heading_cells[3].text = f'{df.loc[i,"文号"]}'
## 第二行
heading_cells = table.rows[1].cells
# 每一列
heading_cells[1].text = f'{df.loc[i,"主题"]}'
# (1)水平对齐
table.cell(1,1).paragraphs[0].paragraph_format.alignment=WD_ALIGN_PARAGRAPH.CENTER
## 第三行
heading_cells = table.rows[2].cells
# 每一列
heading_cells[1].text = '签收'
## 合并单元格
table.cell(0,0).merge(table.cell(2,0))
table.cell(1,1).merge(table.cell(1,3))
table.cell(2,1).merge(table.cell(2,3))
## 添加分页符,一页一张表
document.add_page_break()
# 保存文件
document.save("./成绩单打印.docx")