1、环境搭建:

pyrhon 3.9.7

reportlab  3.6.3

pandas  1.3.4

openpyxl  3.0.9

xlrd 2.0.1

# 安装依赖库
pip install reportlab
pip install pandas
pip install openpyxl
pip install xlrd

2. 实现功能

2.1 读取数据

#读取成绩表
import pandas as pd
# df = pd.read_excel(r'D:\pythonproject\pythonVsc\pandas\成绩表.xls',
#                     dtype='str',usecols=['xm','bj','语','数','英','物','化','生','综','总'])
df = pd.read_excel(r'D:\202112study\test\13.xlsx',dtype='str')

2.2  制作模板

#制作报表
from reportlab.pdfgen import canvas
from reportlab.pdfbase import pdfmetrics
from reportlab.pdfbase.ttfonts import TTFont
from reportlab.lib.units import cm#注册字体  字体推荐使用宋体(字形最全面)
pdfmetrics.registerFont(TTFont('fs',r'D:\pythonproject\pythonVsc\pandas\仿宋_GB2312.TTF'))
pdfmetrics.registerFont(TTFont('fz',r'D:\pythonproject\pythonVsc\pandas\FZXBSJW.TTF'))
pdfmetrics.registerFont(TTFont('ht',r'D:\pythonproject\pythonVsc\pandas\FZHTJW.TTF'))
# 模板
# c = canvas.Canvas('test.pdf')
def fg(c):c.setDash(1,5)for i in range(3):y=22.275-7.425*ic.line(0.5*cm,y*cm,20.5*cm,y*cm)
def one_mb(c,y0=0):c.setFont('fs',16)c.drawString(0.5*cm,(28.9+y0)*cm,'姓名:                                      天道酬勤   厚积薄发')c.drawString(0.6*cm,(27.4+y0)*cm,'一诊成绩')c.drawString(0.6*cm,(25.8+y0)*cm,'奋斗格言:')xk=['语文','数学','英语','物理','化学','生物','总分']for i in range(7):cx_xk=3.5+2.5*ic.drawString(cx_xk*cm,(28.2+y0)*cm,xk[i])#画表格c.setLineWidth(0.5)for i in range(4):ry=28.8-0.8*ic.line(0.5*cm,(ry+y0)*cm,20.5*cm,(ry+y0)*cm)c.line(0.5*cm,(22.5+y0)*cm,20.5*cm,(22.5+y0)*cm)for i in range(7):cx=3+2.5*ic.line(cx*cm,(28.8+y0)*cm,cx*cm,(26.4+y0)*cm)c.line(0.5*cm,(28.8+y0)*cm,0.5*cm,(22.5+y0)*cm)c.line(20.5*cm,(28.8+y0)*cm,20.5*cm,(22.5+y0)*cm)c.line(0.5*cm,(28.8+y0)*cm,3*cm,(28+y0)*cm)c.setFont('ht',16)c.drawString(0.6*cm,(26.6+y0)*cm,'二诊目标')
def one_page(c):for i in range(4):y0=-7.425*ione_mb(c,y0)fg(c)
# one_page(c,df[0])
# c.save()

2.3  写入数据

# 写入数据
c = canvas.Canvas('test.pdf')
def write_one(c,data):xk = ['xm','语','数','英','物','化','生','总']zjs=0for index,row in data.iterrows():c.setFont('fs',16)js = zjs%4y0=-7.425*jsc.drawString(0.5*cm,(28.9+y0)*cm,'     '+row[xk[0]])c.drawString(3.5*cm,(27.4+y0)*cm,row[xk[1]])c.drawString(6*cm,(27.4+y0)*cm,row[xk[2]])c.drawString(8.5*cm,(27.4+y0)*cm,row[xk[3]])c.drawString(11*cm,(27.4+y0)*cm,row[xk[4]])c.drawString(13.5*cm,(27.4+y0)*cm,row[xk[5]])c.drawString(16*cm,(27.4+y0)*cm,row[xk[6]])c.drawString(18.5*cm,(27.4+y0)*cm,row[xk[7]])zjs=zjs+1if zjs%4==0:one_page(c)c.showPage()write_one(c,df)
c.save()

reportlab 应用 打印考生成绩相关推荐

  1. 网友反映学校计算机科学与工程学院教师,华南理工大学一院长被指篡改考生成绩 校方:四名涉事人员停职调查...

    原标题:华南理工大学一院长被指篡改考生成绩 校方:四名涉事人员停职调查 2月14日晚上,华南理工大学新闻中心官方微博发布说明,对近日有网友反映华工计算机科学与工程学院教师涉嫌在2018年研究生复试中进 ...

  2. 2017三月计算机成绩,2017年3月全国计算机等级考试合格考生成绩.PDF

    2017年3月全国计算机等级考试合格考生成绩.PDF 2017年3月全国计算机等级考试合格考生成绩 考生姓名 科目 准考证号 等第 证书编号 蔡碧珊 (15)计算机基础及MS Office应用 154 ...

  3. if函数成绩分三个等级MySQL_使用if函数对考生成绩评定等级comma;lbrack;425comma;520...

    使用if函数对考生成绩评定等级,[425,520 相信很多小伙伴都有会使用到IF函数,那么我们怎么去使用多个if函数进行嵌套呢?下面小编就以学生的成绩表为例为大家具体介绍. 具体如下: 1. 在介绍方 ...

  4. 2021年河北高考生成绩排名查询,2021年河北高考成绩查询网站查分网址:http://www.hebeea.edu.cn/...

    [摘要]高考结束后大家最为关心的问题就是在哪里查分,如何查分,高考频道特别整理2021年河北高考成绩查询查分网址,成绩公布时考生可直接点击网址进行查分,预祝大家都能顺利的考上理想的大学! 由于,各省级 ...

  5. 无效0_12位浙江高考生成绩被教育考试院判定无效,0分收场的原因很可惜

    . 高考结束了很长一段时间,距离最终分数放榜时间也越来越近了,可以看到目前来讲很多省份正在有序的阅卷之中,不少科目的阅卷已经接近了尾声,面对后续的数据统计与核对以后,在25号前后,全国多地将陆续公布分 ...

  6. 2021年嘉兴高考考生成绩查询,2021年嘉兴高考各高中成绩及本科升学率数据排名及分析...

    一.嘉兴高考各高中成绩及本科升学率数据 随着高考成绩的揭晓,我市各高中考生陆续登陆省考试院网站查询各自的高考分数,全市各大高中好消息也接二连三地传来,高分群体成批涌现. 据不完全统计,截至25日晚23 ...

  7. 2021高考艺考生成绩查询,2021美术联考成绩公布时间 成绩什么时候会出来

    美术参加联考之后,最关心的就是自己的成绩了,那么美术联考成绩什么公布,来看是一下! 2021美术联考成绩公布时间 十二月份到一月份左右.不同地区联考成绩公布时间不一样. 11月各省联考报名 根据往年经 ...

  8. XML案例(简单的考生成绩管理系统)

    1.以如下格式的exam.xml文件为例 <?xml version="1.0" encoding="UTF-8" standalone="no ...

  9. 黑马程序员_考生成绩管理系统

    ------- android培训.java培训.期待与您交流! ---------- (1), 创建一个保存学生信息的Student类放在cn.hmm.domain包内. Student.java: ...

  10. 2021高考仙桃考生成绩查询,2021年仙桃高考状元名单公布,仙桃文理科状元是谁多少分...

    2019年仙桃高考状元名单公布,仙桃文理科状元是谁多少分 高考不是唯一的出路,但对于大多数普通家庭来说是最好的出路.很多普通职工家庭辛辛苦苦将孩子养大供其读书,就是为了有朝一日能金榜题名.当然也有的小 ...

最新文章

  1. JS中toFixed()方法的问题及解决方案
  2. How to get list of all public urls which are using BSP UI technology
  3. 联想e52进入bios_联想笔记本怎么设置u盘启动|联想笔记本bios设置usb启动步骤
  4. cf 1059e 思维 贪心 树
  5. java中的字符串_java中字符串的操作
  6. 企业架构研究总结(24)——TOGAF架构开发方法(ADM)之机会及解决方案阶段
  7. 【SDOI 2009】学校食堂 Dining
  8. ubuntu装机必备+主题美化
  9. i3wm学习笔记-基础快捷键
  10. Chrome和Firefox的xpi与crx加载第三方dll
  11. pointcloud90度分割+球面投影(pcl+ros+python)
  12. 51单片机外设LCD12864显示字符串
  13. F - 悼念512汶川大地震遇难同胞
  14. 还自己写代码?VBA录制宏了解下
  15. VS2019_Windows桌面应用程序_01
  16. 《Java8实战》第11章 用 Optional 取代 null
  17. php英文怎么读,100的英文怎么读_单词及读音
  18. 无人驾驶11:行为规划
  19. 建立live555海思编码推流服务
  20. 快速搭建基于GB/T28181-2016的完整音视频框架

热门文章

  1. 图片和Base64编码相互转换
  2. 机器人走正方形c语言代码,张西臣---机器人走正方形
  3. 使用calibre搭建了一套电子图书系统
  4. matlab-plot绘制点线图
  5. Java 窗口设置图标及背景图片
  6. 带你进入 jBPM 工作流的世界
  7. “婚礼邀请函”小程序开发过程
  8. delphi连接access数据库的步骤(详细教程)
  9. ①管理员身份运行cmd;②cmd命令切换到指定文件夹目录;③cmd命令窗口中复制粘贴
  10. 物流仿真在AGV调度方面应用案例