一.项目背景
本项目主要是想给大家介绍一下如何利用数据表(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 pymysql
from openpyxl import load_workbook
from 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()
声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。
举报投诉
-
数据
+关注
关注
8文章
6926浏览量
88867 -
Excel
+关注
关注
4文章
218浏览量
55473 -
数据表
+关注
关注
0文章
296浏览量
11453
发布评论请先 登录
相关推荐
实现 Labview 和SQL server进行数据的读取和写入
行数据不变。现在实现了 Labview 和SQL server进行数据的读取和写入,但怎样选中某行,颜色变深,以及怎样保存数据进入该行,有请高人指点,有案例更好,谢谢
发表于 09-07 09:25
【EXCEL实时写入】扫描EXCEL已有数据的行数并插入数据
本帖最后由 hg110429 于 2021-8-20 14:40 编辑
之前发现很多同学都在问,如何扫描Excel表内数据的行数,然后在已有数据下方
发表于 08-20 14:37
Excel进行电路统计分析
摘要:本文向广大电路设计人员介绍了一种利用Excel电子表对电路进行全面的统计分析的简单方法,几乎适用于任何电路。本文介绍的方法对于深入了解电路在实际环境中的运行情况
发表于 01-22 15:06
•1965次阅读
数据分析、数据挖掘和数据统计的概念与主要区别及其举例分析
数据挖掘就是从海量数据中找到隐藏的规则,数据分析一般要分析的目标比较明确,数据统计则是单纯的使用样本来推断总体。 主要区别: 数据分析的重点
发表于 09-28 19:20
•18次下载
睡眠节律数据统计分析系统的设计
为了解决睡眠节律研究中数据的快速导入、准确分析和详细统计的问题,提出了一种睡眠节律数据统计分析系统。该系统基于.NET开发平台,以Oracle为后台数据库,采用B/S结构模式,分为
发表于 11-15 16:22
•8次下载
【产品应用】如何利用IoT云平台统计设备数据?— 进阶篇
。应用场景上一篇《如何利用IoT云平台统计设备数据?—基础篇》介绍了如何运用ZWS云平台中的内置统计算法进行数据统计,这次将介绍如何创建自定义统计
如何使用SQL进行数据分析
使用SQL进行数据分析是一个强大且灵活的过程,它涉及从数据库中提取、清洗、转换和聚合数据,以便进行进一步的分析和洞察。 1.
评论