批量制作word表格

问题背景

将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.youkuaiyun.com/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")

实现效果

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值