reportlab 应用 打印考生成绩
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 应用 打印考生成绩相关推荐
- 网友反映学校计算机科学与工程学院教师,华南理工大学一院长被指篡改考生成绩 校方:四名涉事人员停职调查...
原标题:华南理工大学一院长被指篡改考生成绩 校方:四名涉事人员停职调查 2月14日晚上,华南理工大学新闻中心官方微博发布说明,对近日有网友反映华工计算机科学与工程学院教师涉嫌在2018年研究生复试中进 ...
- 2017三月计算机成绩,2017年3月全国计算机等级考试合格考生成绩.PDF
2017年3月全国计算机等级考试合格考生成绩.PDF 2017年3月全国计算机等级考试合格考生成绩 考生姓名 科目 准考证号 等第 证书编号 蔡碧珊 (15)计算机基础及MS Office应用 154 ...
- if函数成绩分三个等级MySQL_使用if函数对考生成绩评定等级comma;lbrack;425comma;520...
使用if函数对考生成绩评定等级,[425,520 相信很多小伙伴都有会使用到IF函数,那么我们怎么去使用多个if函数进行嵌套呢?下面小编就以学生的成绩表为例为大家具体介绍. 具体如下: 1. 在介绍方 ...
- 2021年河北高考生成绩排名查询,2021年河北高考成绩查询网站查分网址:http://www.hebeea.edu.cn/...
[摘要]高考结束后大家最为关心的问题就是在哪里查分,如何查分,高考频道特别整理2021年河北高考成绩查询查分网址,成绩公布时考生可直接点击网址进行查分,预祝大家都能顺利的考上理想的大学! 由于,各省级 ...
- 无效0_12位浙江高考生成绩被教育考试院判定无效,0分收场的原因很可惜
. 高考结束了很长一段时间,距离最终分数放榜时间也越来越近了,可以看到目前来讲很多省份正在有序的阅卷之中,不少科目的阅卷已经接近了尾声,面对后续的数据统计与核对以后,在25号前后,全国多地将陆续公布分 ...
- 2021年嘉兴高考考生成绩查询,2021年嘉兴高考各高中成绩及本科升学率数据排名及分析...
一.嘉兴高考各高中成绩及本科升学率数据 随着高考成绩的揭晓,我市各高中考生陆续登陆省考试院网站查询各自的高考分数,全市各大高中好消息也接二连三地传来,高分群体成批涌现. 据不完全统计,截至25日晚23 ...
- 2021高考艺考生成绩查询,2021美术联考成绩公布时间 成绩什么时候会出来
美术参加联考之后,最关心的就是自己的成绩了,那么美术联考成绩什么公布,来看是一下! 2021美术联考成绩公布时间 十二月份到一月份左右.不同地区联考成绩公布时间不一样. 11月各省联考报名 根据往年经 ...
- XML案例(简单的考生成绩管理系统)
1.以如下格式的exam.xml文件为例 <?xml version="1.0" encoding="UTF-8" standalone="no ...
- 黑马程序员_考生成绩管理系统
------- android培训.java培训.期待与您交流! ---------- (1), 创建一个保存学生信息的Student类放在cn.hmm.domain包内. Student.java: ...
- 2021高考仙桃考生成绩查询,2021年仙桃高考状元名单公布,仙桃文理科状元是谁多少分...
2019年仙桃高考状元名单公布,仙桃文理科状元是谁多少分 高考不是唯一的出路,但对于大多数普通家庭来说是最好的出路.很多普通职工家庭辛辛苦苦将孩子养大供其读书,就是为了有朝一日能金榜题名.当然也有的小 ...
最新文章
- JS中toFixed()方法的问题及解决方案
- How to get list of all public urls which are using BSP UI technology
- 联想e52进入bios_联想笔记本怎么设置u盘启动|联想笔记本bios设置usb启动步骤
- cf 1059e 思维 贪心 树
- java中的字符串_java中字符串的操作
- 企业架构研究总结(24)——TOGAF架构开发方法(ADM)之机会及解决方案阶段
- 【SDOI 2009】学校食堂 Dining
- ubuntu装机必备+主题美化
- i3wm学习笔记-基础快捷键
- Chrome和Firefox的xpi与crx加载第三方dll
- pointcloud90度分割+球面投影(pcl+ros+python)
- 51单片机外设LCD12864显示字符串
- F - 悼念512汶川大地震遇难同胞
- 还自己写代码?VBA录制宏了解下
- VS2019_Windows桌面应用程序_01
- 《Java8实战》第11章 用 Optional 取代 null
- php英文怎么读,100的英文怎么读_单词及读音
- 无人驾驶11:行为规划
- 建立live555海思编码推流服务
- 快速搭建基于GB/T28181-2016的完整音视频框架