0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

SQL+Excel怎么进行数据统计

汽车电子技术 来源:Python数据分析之旅 作者:cauwfq 2023-02-23 16:16 次阅读

poYBAGP3IBWAWhzwAACaXhziFZI067.png

一.项目背景

本项目主要是想给大家介绍一下如何利用数据表(SQL)对已经给定Excel模板对数据
进行处理统计,主要是涉及一些单元格的操作,也同时给大家介绍下如何利用openpyxl来
绘制图形,本次数据表和给定Excel模板如下图所示。

poYBAGP3IDSAbR9UAADdKOUM9oM426.png

数据表

pYYBAGP3IEKAMSffAACC8v6gzok530.png

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')

pYYBAGP3ILSALSZTAADZ15qdotI926.png

结果文件

三.完整代码

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

    文章

    6511

    浏览量

    87584
  • Excel
    +关注

    关注

    4

    文章

    212

    浏览量

    55182
  • 数据表
    +关注

    关注

    0

    文章

    294

    浏览量

    11261
收藏 人收藏

    评论

    相关推荐

    EXCEL统计涵数示例

    EXCEL统计涵数示例
    发表于 06-01 17:49

    XY图数据统计-以长度为X轴来进行统计

    和标准差统计,在统计中只能输入一个一维数组或者是波形数据,这都不能把长度数据统计进去,波形数据
    发表于 06-11 11:07

    数据统计

    labview数据统计
    发表于 08-07 16:57

    实现 Labview 和SQL server进行数据的读取和写入

    行数据不变。现在实现了 Labview 和SQL server进行数据的读取和写入,但怎样选中某行,颜色变深,以及怎样保存数据进入该行,有请高人指点,有案例更好,谢谢
    发表于 09-07 09:25

    数据统计

    数据统计
    发表于 11-08 10:53

    怎么避免分析变数据统计?先用商业智能BI一键做基础报表

    数据分析变数据统计,很多时候是由于大量的基础报表占据分析员大量时间,导致分析人员无法抽出时间精力投入深度数据分析中。这也是很多企业的一个通病,要解决基础报表挤占时间这个难题,还得请出商业智能BI
    发表于 12-14 11:05

    EXCEL实时写入】扫描EXCEL已有数据行数并插入数据

    本帖最后由 hg110429 于 2021-8-20 14:40 编辑 之前发现很多同学都在问,如何扫描Excel表内数据行数,然后在已有数据下方
    发表于 08-20 14:37

    单片机串口显示正常,为什么数据统计的数量少两位呢?

    单片机串口显示正常,为什么数据统计的数量少两位呢
    发表于 10-25 06:34

    Excel进行电路统计分析

    摘要:本文向广大电路设计人员介绍了一种利用Excel电子表对电路进行全面的统计分析的简单方法,几乎适用于任何电路。本文介绍的方法对于深入了解电路在实际环境中的运行情况
    发表于 01-22 15:06 1844次阅读
    <b class='flag-5'>Excel</b><b class='flag-5'>进行</b>电路<b class='flag-5'>统计</b>分析

    利用Excel进行电路统计分析

    利用Excel进行
    发表于 01-07 17:56 0次下载
    利用<b class='flag-5'>Excel</b><b class='flag-5'>进行</b>电路<b class='flag-5'>统计</b>分析

    VBA在多Excel工作薄数据汇总的应用

    利用Excel进行数据处理分析时,常需要对大量独立的具有相同表结构的原始工作薄中的数据进行汇总合并到一个工作薄的指定工作表中。通过VBA编程调用Ex
    发表于 05-24 15:37 0次下载

    采用样板机法计算风电场弃风电量的实测数据统计分析_丁坤

    采用样板机法计算风电场弃风电量的实测数据统计分析_丁坤
    发表于 12-29 14:40 2次下载

    数据分析、数据挖掘和数据统计的概念与主要区别及其举例分析

    数据挖掘就是从海量数据中找到隐藏的规则,数据分析一般要分析的目标比较明确,数据统计则是单纯的使用样本来推断总体。 主要区别: 数据分析的重点
    发表于 09-28 19:20 18次下载

    睡眠节律数据统计分析系统的设计

    为了解决睡眠节律研究中数据的快速导入、准确分析和详细统计的问题,提出了一种睡眠节律数据统计分析系统。该系统基于.NET开发平台,以Oracle为后台数据库,采用B/S结构模式,分为
    发表于 11-15 16:22 8次下载
    睡眠节律<b class='flag-5'>数据统计</b>分析系统的设计

    使用MATLAB进行数理统计的程序免费下载

    本文档的主要内容详细介绍的是使用MATLAB进行数理统计的程序免费下载。
    发表于 08-30 17:28 6次下载