python中excel制作成绩报表_python制作简单excel统计报表2之操作excel的模块openpyxl简单用法...

python制作简单excel统计报表2之操作excel的模块openpyxl简单用法

# coding=utf-8 from openpyxl import Workbook, load_workbook from openpyxl.drawing.image import Image from openpyxl.styles import Font,colors from datetime import datetime import MySQLdb class ExcelUtils(object): """ pip install openpyxl pip install pillow 参考文档:https://openpyxl.readthedocs.io/en/stable """ def __init__(self): self.wb = Workbook() # 激活表单 self.ws = self.wb.active self.ws_two = self.wb.create_sheet('我的表单') self.ws.title = '你的表单' self.ws.sheet_properties.tabColor = 'ff000000' self.ws_three = self.wb.create_sheet() def do_sth(self): # 插入数据 self.ws['A1'] = 66 self.ws['A2'] = '你好' self.ws['A3'] = datetime.now() # 批量插入数字 for row in self.ws_two['A1:E5']: for cell in row: cell.value = 2 # 对数据进行求和 self.ws_two['G1'] = '=SUM(A1:E1)' # 插入图片 # img = Image('./static/temp.jpg') # self.ws.add_image(img,'B1') # 合并单元格 self.ws.merge_cells('A4:E5') self.ws.unmerge_cells('A4:E5') # 插入文字 font = Font(sz=18,color = colors.RED) self.ws['A2'].font = font self.wb.save('./static/test.xlsx') def read_xls(self): """ 读取excel数据 :return: """ ws = load_workbook('./static/templates.xlsx') names = ws.get_sheet_names() print(names) # 获取sheet的三种方法 # wb = ws.active # wb = ws['北京大学统计'] wb = ws[names[0]] # 先读取行 for row in wb.rows: # 再读取列 for cell in row: print(cell.value) def get_conn(self): """ 获取mysql的连接""" try: self.conn = MySQLdb.connect( host="localhost", port=3306, user="root", password="root", db="user_grade", ) except MySQLdb.Error as e: print("Error %d:%s" % (e.args[0], e.args[1])) return self.conn def import_excel_todb(self): # 将excel中的内容导入数据库中 ws = load_workbook('./static/templates.xlsx') names = ws.get_sheet_names() # 获取数据的sheet wb = ws[names[0]] conn = self.get_conn() for (i,row) in enumerate(wb.rows): # 跳过标题部分 if i < 2: continue # 获取年份,最高分,平均分 year = wb['A{0}'.format(i+1)].value max = wb['B{0}'.format(i+1)].value avg = wb['C{0}'.format(i+1)].value # print(year, max, avg) cur = conn.cursor() # sql = "insert into score(year,max,avg) values(2005, 695, 468)" sql = "insert into score(year,max,avg) values({year},{max},{avg})".format(year = year,max = max,avg = avg) cur.execute(sql) conn.autocommit(True) conn.close() def export_db_toexcel(self): # 从数据库导数据到excel里面 # 从数据库中获取数据 conn = self.get_conn() cur = conn.cursor() cur.execute("select year,max,avg from score") # 获取所有数据 rows = cur.fetchall() # for row in rows: # print(row[0],row[1],row[2]) wb = Workbook() ws = wb.active ws.title = "高考成绩" for (i,row) in enumerate(rows): # 单个赋值 # ws['A{0}'.format(i+1)] = row[0] # ws['B{0}'.format(i+1)] = row[1] # ws['C{0}'.format(i+1)] = row[2] # 批量赋值 (ws['A{0}'.format(i+1)], ws['B{0}'.format(i + 1)], ws['C{0}'.format(i + 1)] ) = row wb.save("./static/myscore.xlsx") # 关闭数据库连接 conn.close() if __name__ == "__main__": client = ExcelUtils() # client.do_sth() # client.read_xls() # conn = client.get_conn() # client.import_excel_todb() client.export_db_toexcel()

CREATE TABLE `score` (

`id` int(11) unsigned NOT NULL AUTO_INCREMENT,

`year` int(11) DEFAULT NULL,

`max` int(11) DEFAULT NULL,

`avg` int(11) DEFAULT NULL,

PRIMARY KEY (`id`)

) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;

static/templates.xlsx

插入数据库的信息:

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/339884.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

2018软科计算机科学与技术排名,又一中国高校“计算机学科排名”发布,清华第1,浙大第2...

计算机类专业是近些年最热门的专业之一&#xff0c;这类专业不仅就业情况好&#xff0c;工资待遇水平也很高&#xff0c;就是在考公务员时也很有优势。现在&#xff0c;大部分高校都已经开设了计算机类专业&#xff0c;我国学习计算机类专业的学生数量非常多&#xff0c;所以&a…

java数字格式化_Java数字格式

java数字格式化当我看到其他人编写不必要的Java代码并且由于缺乏对已经提供所需功能的JDK类的了解而编写了不必要的Java代码时&#xff0c;我会想到很多次。 这样的一个例子是时间相关的常量的使用硬编码值的写入&#xff0c;如60 &#xff0c; 24 &#xff0c; 1440 &#xff…

快手小筷子机器人_小筷子app官方版下载-快手控场机器人小筷子app下载v1.0.0安卓版_289手游网...

快手控场机器人小筷子app是一个专门为快手主播打造的专业实用工具&#xff0c;是每个快手主播的最佳直播伴侣&#xff01;快手控场机器人小筷子app能够实时与观众弹幕互动&#xff0c;还能语音播报各种礼物答谢等等&#xff0c;帮助每个主播更好的聚拢粉丝。快手控场机器人小筷…

计算机专业英语主要句型及翻译技巧,计算机专业英语单词及翻译等技巧-20210420072747.ppt-原创力文档...

New Words & Expressions:computerlike a. 计算机似的electromechanical a. 机电的, 电机的vacuum tubes 真空管Census Bureau 人口普查局thousands of 成千上万的 known as 通常所说的&#xff0c;以……著称1.1 The Invention of the ComputerAbbreviations:ENIAC(Electr…

安川机器人编程加电弧_安川AR2010机器人

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼安川AR2010机器人 微信hao123ali联系15067165514 安川机器人末端工具快换_桥田_品质承诺实现安川机器人的一机多用&#xff0c; 工装夹具高效切换&#xff0c;专注于提升工业自动化生产线柔性&#xff0c;技术领先&#xff0c;荣获…

再访PMML

嗨伙计&#xff01; 从今年年初开始&#xff0c;就有了重新设计Drools PMML模块的计划。 在这篇文章中&#xff0c;我将描述我们将如何处理它&#xff0c;目前的状态&#xff0c;未来发展的想法等&#xff0c;等等……敬请期待&#xff01; 背景 PMML是一个标准&#xff0c;旨…

用计算机怎么弹离人愁数字,拇指琴新手入门曲谱——离人愁

喜欢古风的朋友赶快凑过来啦&#xff0c;最近抖音上超火的离人愁拇指琴教学&#xff0c;喜欢离人愁的小姐姐小哥哥赶快学起来啦&#xff01;以下琴谱适用于Hugh Tracey G调17键。南非琴出厂调音是G调排列&#xff0c;习惯了C调音阶排列的朋友可能对G调排列不是很适应。因为两者…

支持nvme的linux_Linux nvme驱动初探

本篇研究的nvme驱动基于Linux 3.10.73 ,为什么选择这个版本呢&#xff0c;因为这个版本之后Linux 块层马上就换成支持多队列(可以参考Linux块层多队列之引入内核)&#xff0c;小编的SUSE 11.3也正好能编译这个相对比较低的版本。(随后再看最新版本内核上nvme驱动的实现)通过nvm…

jvm7 jvm8_JVM PermGen –您在哪里?

jvm7 jvm8这篇文章介绍了JVM内存结构的一些基础知识&#xff0c;并快速窥视了PermGen&#xff0c;以了解自Java SE 8出现以来它已消失的地方。 裸基础 JVM只是系统上运行的另一个进程&#xff0c;魔术始于java命令。 像任何OS进程一样&#xff0c;它需要内存才能运行。 请记住…

2019网络教育计算机统考模拟试题,最新2019年网络远程教育《计算机应用基础》统考模拟题库500题(含答案)...

2019年网络远程教育统考《计算机应用基础》考试题库500题[含答案]一、选择题1&#xff0e;启动ExCEl2003应用程序后自动建立的工作簿文件的文件名为_______。A.工作簿B.工作簿文件C.BookFilE1D.Book12&#xff0e;OutlookExprEss的主要功能是__________。A.创建电子邮件账户B.搜…

C++类与对象(中)第二篇

前言&#xff1a; C语言中使用运算符是对内置类型的数据进行操作&#xff0c;但是在C中有了对象&#xff0c;导致对象无法通过运算符进行运算&#xff0c;故引入了运算符重载即需要重新定义这些运算符&#xff0c;赋予已有运算符新的功能&#xff0c;使它能够用于特定类型执行特…

松下壁挂式新风系统推荐_松下壁挂式新风怎么样 松下壁挂式新风系统优势介绍【详解】...

现在很多的家庭都是会安装 新风系统 的&#xff0c;这样也是可以保证室内的空气质量的。其实市场上的新风系统品牌是比较多的&#xff0c;比如松下等&#xff0c;其质量是比较不错的&#xff0c;那么松下壁挂式新风系统的优势有哪些?我们来看看小编的相关介绍吧。松下壁挂式新…

ETL万岁

提取转换负载是用于从一个数据系统中提取数据并加载到另一个数据系统中的过程。 涉及的数据系统称为源系统和目标系统。 来自源系统的数据形状与目标系统不匹配&#xff0c;因此需要进行一些转换以使其兼容&#xff0c;该过程称为Transformation 。 转换是由map / filter / re…

云计算机内存不足怎么办,网易云音乐提示内存不足,电脑提示内存不足-

在有些时候我们的手机百度云提示内存不足了&#xff0c;这该怎么办呢?那么下面就由学习啦小编来给你们说说手机百度云提示内存不足的解决方法吧&#xff0c;希望可以帮到你们哦!手机百度云提示内存不足的解决方法一&#xff1a;手机用久了&#xff0c;需要安装杀毒软件&#x…

黑盒攻击的分类_「图像分类」图像分类中的对抗攻击是怎么回事?

欢迎大家来到图像分类专栏&#xff0c;深度学习分类模型虽然性能强大&#xff0c;但是也常常会因为受到小的干扰而性能崩溃&#xff0c;对抗攻击就是专门研究如何提高网络模型鲁棒性的方法&#xff0c;本文简要介绍相关内容。作者 | 郭冰洋编辑 | 言有三1 简介对于人类而言&…

getter/setter_Getters / Setters。 邪恶。 期。

getter/setter从2003年开始&#xff0c;艾伦霍鲁布&#xff08;Allen Holub&#xff09;讨论了为什么吸气和塞特方法是邪恶的著名文章&#xff0c;关于吸气/塞特方法是否是反模式&#xff0c;应该避免使用&#xff0c;还是我们在面向对象中不可避免地需要它&#xff0c;这是一个…

flowable画图教程_JeeGit企业级快速开发平台-JeeSite4 Flowable入门教程

注&#xff1a; 998元以下课程无咨询服务该课程包含服务内容&#xff1a;299元含发票在线课程观看权购课后&#xff0c;教学资源联系长春叭姐QQ&#xff1a;3211247533 索要教学内容3.1 第一章 业务流程 BPM、工作流引擎、Flowable、Activiti23.1.1 JeeSite4 Flowable 课程简介…

Java / Spring:如何快速生成整个Swagger记录的CRUD REST API

作为开发人员&#xff0c;我们在日常生活中经常面临的最繁琐的任务之一就是编写良好且易于理解的文档。 无论我们的文档只有几行来解释功能的核心功能&#xff0c;还是表明系统的来龙去脉的成熟文章都没关系。 重要的是&#xff0c;我们试图通过文档传达的信息是准确且可理解的…

计算机中的英语六级作文万能模板,大学英语六级作文万能模板7篇

很多人都觉得六级很难&#xff0c;其实主要是作文不会写&#xff0c;今天我们为大家整理了一些六级作文万能模板&#xff0c;大家可以借鉴一下&#xff0c;相信会对大家的提高有所帮助。大学英语六级作文万能模板1∶ 阐述主题型要求从一句话或一个主题出发&#xff0c;按照提纲…

中的实践 中兴_中兴通讯5G智慧治水业务在千岛湖畔下姜村成功实践

近日&#xff0c;中兴通讯智慧治水业务在千岛湖畔下姜村成功实践。这一业务为实现千岛湖下姜村水域的智能化管理、立体化监控提供了可靠保障&#xff0c;也将浙江电信5G网络、中兴通讯5G端到端解决方案在试商用实践中再推进一步。下姜村曾先后获得“全国创先争优先进基层党组织…