按公司名统计一定时期内入货的总车数,总重量还有总价格。数据表如下:

要用到的库是pymysql,读取excel表格的xlrd,写入excel的xlwt和复制excel模板的xlutils,代码如下:

  1 '''
2 #一个pymysql的实例
3 #将mysql数据库里的数据统计到excel表格
4 '''
5 #开始导入需要用到的模块
6 import xlrd
7 import xlwt
8 from xlutils.copy import copy
9 import pymysql
10
11 #连接数据库
12 database = pymysql.connect('localhost','databaseusername','databasepassword','databasename',charset='utf8')
13 #初始化数据库连接指针
14 cursor = database.cursor()
15 #查询数据库
16 sql = "SELECT company, COUNT(company), SUM(weight), SUM(price * weight) from data GROUP BY company;"
17 #执行sql语句
18 cursor.execute(sql)
19 #将查询到的结果进行存储
20 result = cursor.fetchall()
21 #打印看结果是否符合预期
22 print(result)
23
24 #开始遍历元组result并分别存储各项数值
25 for i in result:
26 print(i)
27 if i[0] == "张三粮配":
28 a_che = i[1]
29 a_dun = i[2]
30 a_total_price = i[3]
31 if i[0] == "李四粮食":
32 b_che = i[1]
33 b_dun = i[2]
34 b_total_price = i[3]
35 if i[0] == "王五小麦":
36 c_che = i[1]
37 c_dun = i[2]
38 c_total_price = i[3]
39 if i[0] == "赵六麦子专营":
40 d_che = i[1]
41 d_dun = i[2]
42 d_total_price = i[3]
43
44 #以带格式的方式导入工作簿模板
45 tem_excel = xlrd.open_workbook('模板路径',formatting_info=True)
46 #获取工作簿里的工作表
47 tem_sheet = tem_excel.sheet_by_index(0)
48
49 #复制模板
50 new_excel = copy(tem_excel)
51 #获取复制后的工作表
52 new_sheet = new_excel.get_sheet(0)
53
54 #定义写入总格式
55 style = xlwt.XFStyle()
56 #定义写入的字体格式
57 font = xlwt.Font()
58 font.name = "微软雅黑"
59 font.bold = True
60 font.height = 360
61 #将字体格式写入到总样式
62 style.font = font
63
64 #定义写入的边框样式
65 borders = xlwt.Borders()
66 borders.top = xlwt.Borders.THIN
67 borders.right = xlwt.Borders.THIN
68 borders.bottom = xlwt.Borders.THIN
69 borders.left = xlwt.Borders.THIN
70 #将边框样式写入总样式
71 style.borders = borders
72
73 #开始定义对齐样式
74 alignment = xlwt.Alignment()
75 alignment.horz = xlwt.Alignment.HORZ_CENTER
76 alignment.vert = xlwt.Alignment.VERT_CENTER
77 #将对齐样式写入总样式
78 style.alignment = alignment
79
80 #开始向新的工作表里按要求写入数据
81 #先写张三的,张三的在第三行,第二到第四列
82 new_sheet.write(2, 1, a_che, style)
83 new_sheet.write(2, 2, a_dun, style)
84 new_sheet.write(2, 3, a_total_price, style)
85
86 #再写李四的,李四的在第四行,第二到第四列
87 new_sheet.write(3, 1, b_che, style)
88 new_sheet.write(3, 2, b_dun, style)
89 new_sheet.write(3, 3, b_total_price, style)
90
91 #再写王五的,王五的在第五行,第二到第四列
92 new_sheet.write(4, 1, c_che, style)
93 new_sheet.write(4, 2, c_dun, style)
94 new_sheet.write(4, 3, c_total_price, style)
95
96 #再写赵六的,赵六的在第六行,第二列到第五列
97 new_sheet.write(5, 1, d_che, style)
98 new_sheet.write(5, 2, d_dun, style)
99 new_sheet.write(5, 3, d_total_price, style)
100
101 #最后保存工作簿
102 new_excel.save("存储路径/文件名称.xls")

效果如下:

Python的一个mysql实例的更多相关文章

  1. python打造一个Mysql数字类型注入脚本(1)

    前言: 总是想写一个sql注入脚本,但是之前的那些都不行. 这次做好了准备,然后嘿嘿嘿. 准备: sql注入的基础知识 熟悉怎么判断 正文: 思路概念图: 这里我没有限制用户输入,不限制的话可能会 @ ...

  2. Windows下多个Mysql实例配置主从(转)

    https://www.cnblogs.com/jpfss/p/8143720.html 序:     网上有很多类似的文章,也是各种百度出来的,但是对于多数刚开始接触MYSQL主从的小白来说,网上文 ...

  3. 在docker上安装运行mysql实例

    ps:实验环境是:CentOS Linux release 7.3  64位1.获取mysql镜像从docker hub的仓库中拉取mysql镜像docker pull mysql查看镜像docker ...

  4. mysql实例的连接数max_user_connections 和max_connections 配置的那些事

    今天在查线上问题时,通过phpMyAdmin来进行DML操作,发现比平时慢多了,就各种进原因. 项目的场景是一个mysql实例中创建了多个数据库,猜想可能是相互影响所致. 然后,查询线上Mysql数据 ...

  5. Windows上安装多个MySQL实例(转)

    在学习和开发过程中有时候会用到多个MySQL数据库,比如Master-Slave集群.分库分表,开发阶段在一台机器上安装多个MySQL实例就显得方便不少. 在 MySQL教程-基础篇-1.1-Wind ...

  6. Windows下多个Mysql实例配置主从

    序:     网上有很多类似的文章,也是各种百度出来的,但是对于多数刚开始接触MYSQL主从的小白来说,网上文章的代码里面很多技术点都没有理解,有跌打误撞碰上的,但多数都是这篇文章卡主了,换篇文章接着 ...

  7. CentOS6.5下源码安装多个MySQL实例及复制搭建

    多实例安装本节是在CentOS6.5下源码安装MySQL5.6.35的基础上,在同一台机器增加一个MySQL实例.参考Centos中安装多个mysql数据的配置实例,安装目录为/usr/local/m ...

  8. 在一台Linux服务器上安装多个MySQL实例(一)--使用mysqld_multi方式

    (一)MySQL多实例概述 实例是进程与内存的一个概述,所谓MySQL多实例,就是在服务器上启动多个相同的MySQL进程,运行在不同的端口(如3306,3307,3308),通过不同的端口对外提供服务 ...

  9. Python操作Mysql实例代码教程在线版(查询手册)_python

    实例1.取得MYSQL的版本 在windows环境下安装mysql模块用于python开发 MySQL-python Windows下EXE安装文件下载 复制代码 代码如下: # -*- coding ...

随机推荐

  1. 企业级LINUX自动化运维工具Ansible实战课程下载

    什么是Ansible? Ansible是新出现的自动化运维工具,基于Python开发,集合了众多运维工具(puppet.chef.func.fabric)的优点,实现了批量系统配置.批量程序部署.批量 ...

  2. js 时间日期与时间戳之间转换

    1 1.将时间(2017-08-10)转换时间戳 2 var startTime = '2017-08-10'; 3 var startdate = new Date(Date.parse(start ...

  3. 基于gin的golang web开发:docker

    Golang天生适合运行在docker容器中,这得益于:Golang的静态编译,当在编译的时候关闭cgo的时候,可以完全不依赖系统环境. 一些基础 测试容器时我们经常需要进入容器查看运行情况,以下命令 ...

  4. CSUST 4019 听党指挥(思维+模拟)

    题目链接 题目大意 给你一个长度为n的序列(n为偶数),序列为[1,2,3,....n],操作m次,进行m次操作后输出这个序列 有三种操作 1:每次将最左边的元素移到最右边,重复x次 2:每次将最右边 ...

  5. finalize和clean

    弊端 1.执行的时间不确定,资源释放不能靠这2个方法.Cleaner规范指出:"清除方法在System.exit期间的行为是与实现相关的.不确保清除动作是否会被调用." 2#.如果 ...

  6. Linux服务器学习----tomcat 服务配置实验报告(一)

    一.实验目的 1. 掌握 tomcat 服务的搭建 二.实验内容 1. 搭建一台缓存 tomcat 服务器 三.实验环境1. tomcat 服务器 centos7 对应主机 ip 为 10.10.64 ...

  7. 16_Android的数据存储_ SharedPreference、XML和JSON

    1. Android读写首选项 1.1 SharedPreferences SharedPreferences 是一种轻型的数据存储方式,它的本质是基于XML文件存储Key-Value键值对数据,通常 ...

  8. C语言--计算代码段运行时间

    c语言中有专一包含计算时间函数的头文件,time.h.当我们需要计算某段程序运行的时间时就需要用到time.h包含的clock()函数,在这里介绍一下如何使用这个函数计算代码运行时间. clock函数 ...

  9. 软件工程与UML第三次作业

    博客班级 软件工程与UML2班 作业要求 本次作业要求 作业目标 <给至少5名同学提他的代码issue并用博客记录;根据收到的issue修改自己的代码> 作业源代码 我的码云仓库 学号 & ...

  10. CentOS7系统tab命令补全

    在新安装的CentOS7系统中,如果没有安装命令补全的话,在systemctl管理服务的时候就没法用tab来自动补全,因此在安装完系统后,我们要再安装命令补全这个软件: yum -y install ...