SQL+Excel怎么进行数据统计

一.项目背景
本项目主要是想给大家介绍一下如何利用数据表(sql)对已经给定excel模板对数据   进行处理统计,主要是涉及一些单元格的操作,也同时给大家介绍下如何利用openpyxl来绘制图形,本次数据表和给定excel模板如下图所示。  
数据表
excel模板文件
二.实现过程
1.数据准备》》初始化连接》》初始化文本#初始化class emp_xlsx(): def __init__(self, host, user, password, database): #初始化连接信息 self.conn = pymysql.connect(host=host, user=user, password=password, database=database ) #初始化模板文件 self.wb = load_workbook('./temp.xlsx') #获取sheet页签 self.ws = self.wb.active #页签名 self.ws.title = '员工薪资统计' #页签颜色属性 self.ws.sheet_properties.tabcolor = 'ff0000'2.获取数据》》执行sql语句 def export_xlsx(self): #建立连接 cursor=self.conn.cursor() try: #执行sql语句(如果数据量大,需要借助于分页查询) cursor.execute('select eno,name,salary from emp') #获取数据 rows=cursor.fetchall() except exception as e: print(e)2.获取数据》》执行sql语句 def export_xlsx(self): #建立连接 cursor=self.conn.cursor() try: #执行sql语句(如果数据量大,需要借助于分页查询) cursor.execute('select eno,name,salary from emp') #获取数据 rows=cursor.fetchall() except exception as e: print(e)3.存储数据》》设置属性》》保存图表 #写入行号id row_id = 13 #遍历每行数据 for (i,row) in enumerate(rows): (self.ws['b{0}'.format(row_id)], self.ws['c{0}'.format(row_id)], self.ws['d{0}'.format(row_id)])=row row_id += 1 #显示图表 chart = barchart() #设置图表名称 chart.title = 薪资统计表 #设置显示风格 chart.style = 16 #设置x轴坐标轴名称 chart.x_axis.title = '姓名' #设置y轴坐标轴名称 chart.y_axis.title = '薪资' #横坐标 cats = reference(self.ws, min_col=3, min_row=13, max_row=row_id) #数据区域 data = reference(self.ws, min_col=4, min_row=12, max_row=row_id) #添加数据 chart.add_data(data, titles_from_data=true) #添加属性 chart.set_categories(cats) #添加图表 self.ws.add_chart(chart, a{0}.format(row_id + 2)) #保存数据 self.wb.save('./emp.xlsx')  
                                                       结果文件
三.完整代码
import pymysqlfrom openpyxl import load_workbookfrom openpyxl.chart import barchart, reference#初始化class emp_xlsx(): def __init__(self, host, user, password, database): #初始化连接信息 self.conn = pymysql.connect(host=host, user=user, password=password, database=database ) #初始化模板文件 self.wb = load_workbook('./temp.xlsx') #获取sheet页签 self.ws = self.wb.active #页签名 self.ws.title = '员工薪资统计' #页签颜色属性 self.ws.sheet_properties.tabcolor = 'ff0000' #导出数据 def export_xlsx(self): #建立连接 cursor=self.conn.cursor() try: #执行sql语句(如果数据量大,需要借助于分页查询) cursor.execute('select eno,name,salary from emp') #获取数据 rows=cursor.fetchall() except exception as e: print(e) #写入行号id row_id = 13 #遍历每行数据 for (i,row) in enumerate(rows): (self.ws['b{0}'.format(row_id)], self.ws['c{0}'.format(row_id)], self.ws['d{0}'.format(row_id)])=row row_id += 1 #显示图表 chart = barchart() #设置图表名称 chart.title = 薪资统计表 #设置显示风格 chart.style = 16 #设置x轴坐标轴名称 chart.x_axis.title = '姓名' #设置y轴坐标轴名称 chart.y_axis.title = '薪资' #横坐标 cats = reference(self.ws, min_col=3, min_row=13, max_row=row_id) #数据区域 data = reference(self.ws, min_col=4, min_row=12, max_row=row_id) #添加数据 chart.add_data(data, titles_from_data=true) #添加属性 chart.set_categories(cats) #添加图表 self.ws.add_chart(chart, a{0}.format(row_id + 2)) #保存数据 self.wb.save('./emp.xlsx')#初始化连接new_mysql=emp_xlsx('127.0.0.1', 'root', '253611', 'company')#导出数据new_mysql.export_xlsx()
中国联通和中国电信宣布合作共建一张5G接入网络
【紫光同创国产FPGA教程】【第十三章】字符显示实验
C语言中的数组空间动态开辟
数据如何助力人工智能的到来
不止手机 如今的骁龙还在驱动什么“大趋势”?
SQL+Excel怎么进行数据统计
AI寻求下一个增长点,落实机器的三维世界
低频率超声波线路板PCB驱动电路
城市治安监控系统平台方案的结构组成和功能实现
5G和云时代的智能IP网络正在到来
计算机通信与网络v2 实验课程(18)
Arduino IoT Cloud开始与ChatGPT联机运作
Ampere Altra系列处理器的锁和内存序
车视野3D 360全景GQ2330解码一体机进行实测
2021蓝莓大赏落幕,YESOUL野小兽荣获“最佳线上直播课”奖
光伏赛道热度高涨 机器人能否在光伏打出一个产业赢局?
SPARC:用于先进逻辑和 DRAM 的全新沉积技术
Model 3 在4月份的情况与之前持平,维持在月销1万台的量
萨科微注重产品的配套和生态化布局,争取最大可能满足客户的需求
ITC决定对特定电连接器和保持架组件及其产品发起337调查