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

    文章

    7233

    浏览量

    90866
  • Excel
    +关注

    关注

    4

    文章

    225

    浏览量

    56299
  • 数据表
    +关注

    关注

    0

    文章

    299

    浏览量

    11700
收藏 人收藏
    相关推荐
    热点推荐

    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

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

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

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

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

    Excel进行电路统计分析

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

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

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

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

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

    统计java代码行数和jar包中.class代码的行数

    本文档内容介绍了统计java代码行数和jar包中.class代码的行数,供参考
    发表于 03-19 15:27 0次下载

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

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

    如何利用ZWS云平台的自定义统计算法对数据进行统计

    设备数据上云,解析后的设备数据一般是时序存储,但纯粹的设备时序数据无法给用户带来更大的业务价值,需要根据业务需求进行额外的数据统计分析。
    的头像 发表于 05-23 15:09 941次阅读
    如何利用ZWS云平台的自定义<b class='flag-5'>统计</b>算法对<b class='flag-5'>数据</b><b class='flag-5'>进行</b><b class='flag-5'>统计</b>?

    【产品应用】如何利用IoT云平台统计设备数据?— 进阶篇

    。应用场景上一篇《如何利用IoT云平台统计设备数据?—基础篇》介绍了如何运用ZWS云平台中的内置统计算法进行数据统计,这次将介绍如何创建自定义统计
    的头像 发表于 05-30 17:18 660次阅读
    【产品应用】如何利用IoT云平台<b class='flag-5'>统计</b>设备<b class='flag-5'>数据</b>?— 进阶篇

    如何使用SQL进行数据分析

    使用SQL进行数据分析是一个强大且灵活的过程,它涉及从数据库中提取、清洗、转换和聚合数据,以便进行进一步的分析和洞察。 1.
    的头像 发表于 11-19 10:26 1023次阅读

    接口核心板必选 | 视美泰AIoT-3568SC 、 AIoT-3576SC:小身材大能量,轻松应对多场景设备扩展需求!

    在智能硬件领域,「适配」是绕不开的关键词。无论是小屏设备的”寸土寸金”,还是模具开发的巨额成本,亦或是多产品线兼容的复杂需求,开发者总在寻找一款能「以不变应万变」的核心解决方案。视美泰旗下的AIoT-3568SC与AIoT-3576SC接口核心板系列,可以说是专为高灵活适配场景而生!无需为设备尺寸、模具限制或产品线差异妥协,一块核心板,即可释放无限可能。为什

    视美泰
    2小时前
    142

    3核A7+单核M0多核异构,米尔全新低功耗RK3506核心板发布

    近日,米尔电子发布MYC-YR3506核心板和开发板,基于国产新一代入门级工业处理器瑞芯微RK3506,这款芯片采用三核Cortex-A7+单核Cortex-M0多核异构设计,不仅拥有丰富的工业接口、低功耗设计,还具备低延时和高实时性的特点。核心板提供RK3506B/RK3506J、商业级/工业级、512MB/256MBLPDDR3L、8GBeMMC/256

    米尔电子
    4小时前
    152

    搭建树莓派网络监控系统:顶级工具与技术终极指南!

    树莓派网络监控系统是一种经济高效且功能多样的解决方案,可用于监控网络性能、流量及整体运行状况。借助树莓派,我们可以搭建一个网络监控系统,实时洞察网络活动,从而帮助识别问题、优化性能并确保网络安全。安装树莓派网络监控系统有诸多益处。树莓派具备以太网接口,还内置了Wi-Fi功能,拥有足够的计算能力和内存,能够在Linux或Windows系统上运行。因此,那些为L

    上海晶珩电子科技有限公司
    21小时前
    329

    STM32驱动SD NAND(贴片式SD卡)全测试:GSR手环生物数据存储的擦写寿命与速度实测

    在智能皮电手环及数据存储技术不断迭代的当下,主控 MCU STM32H750 与存储 SD NAND MKDV4GIL-AST 的强强联合,正引领行业进入全新发展阶段。二者凭借低功耗、高速读写与卓越稳定性的深度融合,以及高容量低成本的突出优势,成为大规模生产场景下极具竞争力的数据存储解决方案。

    MK米客方德
    22小时前
    337

    芯对话 | CBM16AD125Q这款ADC如何让我的性能翻倍?

    综述在当今数字化时代,模数转换器(ADC)作为连接模拟世界与数字系统的关键桥梁,其技术发展对众多行业有着深远影响。从通信领域追求更高的数据传输速率与质量,到医疗影像领域渴望更精准的疾病诊断,再到工业控制领域需要适应复杂恶劣环境的稳定信号处理,ADC的性能提升成为推动这些行业进步的重要因素。行业现状分析在通信行业,5G乃至未来6G的发展,对基站信号处理提出了极

    芯佰微电子
    1天前
    348

    史上最全面解析:开关电源各功能电路

    01开关电源的电路组成开关电源的主要电路是由输入电磁干扰滤波器(EMI)、整流滤波电路、功率变换电路、PWM控制器电路、输出整流滤波电路组成。辅助电路有输入过欠压保护电路、输出过欠压保护电路、输出过流保护电路、输出短路保护电路等。开关电源的电路组成方框图如下:02输入电路的原理及常见电路1AC输入整流滤波电路原理①防雷电路:当有雷击,产生高压经电网导入电源时

    张飞实战电子官方
    1天前
    372

    有几种电平转换电路,适用于不同的场景

    一.起因一般在消费电路的元器件之间,不同的器件IO的电压是不同的,常规的有5V,3.3V,1.8V等。当器件的IO电压一样的时候,比如都是5V,都是3.3V,那么其之间可以直接通讯,比如拉中断,I2Cdata/clk脚双方直接通讯等。当器件的IO电压不一样的时候,就需要进行电平转换,不然无法实现高低电平的变化。二.电平转换电路常见的有几种电平转换电路,适用于

    张飞实战电子官方
    2天前
    336

    瑞萨RA8系列教程 | 基于 RASC 生成 Keil 工程

    对于不习惯用 e2 studio 进行开发的同学,可以借助 RASC 生成 Keil 工程,然后在 Keil 环境下愉快的完成开发任务。

    RA生态工作室
    05-01 10:00
    600

    共赴之约 | 第二十七届中国北京国际科技产业博览会圆满落幕

    作为第二十七届北京科博会的参展方,芯佰微有幸与800余家全球科技同仁共赴「科技引领创享未来」之约!文章来源:北京贸促5月11日下午,第二十七届中国北京国际科技产业博览会圆满落幕。本届北京科博会主题为“科技引领创享未来”,由北京市人民政府主办,北京市贸促会,北京市科委、中关村管委会,北京市经济和信息化局,北京市知识产权局和北辰集团共同承办。5万平方米的展览云集

    芯佰微电子
    2天前
    933

    道生物联与巍泰技术联合发布 RTK 无线定位系统:TurMass™ 技术与厘米级高精度定位的深度融合

    道生物联与巍泰技术联合推出全新一代 RTK 无线定位系统——WTS-100(V3.0 RTK)。该系统以巍泰技术自主研发的 RTK(实时动态载波相位差分)高精度定位技术为核心,深度融合道生物联国产新兴窄带高并发 TurMass™ 无线通信技术,为室外大规模定位场景提供厘米级高精度、广覆盖、高并发、低功耗、低成本的一站式解决方案,助力行业智能化升级。

    道生物联
    2天前
    725

    智能家居中的清凉“智”选,310V无刷吊扇驱动方案--其利天下

    炎炎夏日,如何营造出清凉、舒适且节能的室内环境成为了大众关注的焦点。吊扇作为一种经典的家用电器,以其大风量、长寿命、低能耗等优势,依然是众多家庭的首选。而随着智能控制技术与无刷电机技术的不断进步,吊扇正朝着智能化、高效化、低噪化的方向发展。那么接下来小编将结合目前市面上的指标,详细为大家讲解其利天下有限公司推出的无刷吊扇驱动方案。▲其利天下无刷吊扇驱动方案一

    其利天下技术
    05-10 16:29
    1.5k

    电源入口处防反接电路-汽车电子硬件电路设计

    一、为什么要设计防反接电路电源入口处接线及线束制作一般人为操作,有正极和负极接反的可能性,可能会损坏电源和负载电路;汽车电子产品电性能测试标准ISO16750-2的4.7节包含了电压极性反接测试,汽车电子产品须通过该项测试。二、防反接电路设计1.基础版:二极管串联二极管是最简单的防反接电路,因为电源有电源路径(即正极)和返回路径(即负极,GND),那么用二极

    张飞实战电子官方
    05-09 19:34
    1.1k

    半导体芯片需要做哪些测试

    首先我们需要了解芯片制造环节做⼀款芯片最基本的环节是设计->流片->封装->测试,芯片成本构成⼀般为人力成本20%,流片40%,封装35%,测试5%(对于先进工艺,流片成本可能超过60%)。测试其实是芯片各个环节中最“便宜”的一步,在这个每家公司都喊着“CostDown”的激烈市场中,人力成本逐年攀升,晶圆厂和封装厂都在乙方市场中“叱咤风云”,唯独只有测试显

    汉通达
    05-09 10:02
    974

    解决方案 | 芯佰微赋能示波器:高速ADC、USB控制器和RS232芯片——高性能示波器的秘密武器!

    示波器解决方案总述:示波器是电子技术领域中不可或缺的精密测量仪器,通过直观的波形显示,将电信号随时间的变化转化为可视化图形,使复杂的电子现象变得清晰易懂。无论是在科研探索、工业检测还是通信领域,示波器都发挥着不可替代的作用,帮助工程师和技术人员深入剖析电信号的细节,精准定位问题所在,为创新与发展提供坚实的技术支撑。一、技术瓶颈亟待突破性能指标受限:受模拟前端

    芯佰微电子
    05-09 10:36
    1.7k

    硬件设计基础----运算放大器

    1什么是运算放大器运算放大器(运放)用于调节和放大模拟信号,运放是一个内含多级放大电路的集成器件,如图所示:左图为同相位,Vn端接地或稳定的电平,Vp端电平上升,则输出端Vo电平上升,Vp端电平下降,则输出端Vo电平下降;右图为反相位,Vp端接地或稳定的电平,Vn端电平上升,则输出端Vo电平下降,Vn端电平下降,则输出端Vo电平上升2运算放大器的性质理想运算

    张飞实战电子官方
    05-08 19:34
    701