python连接数据库,处理数据结果后生成excel文件
# _*_coding:utf-8 _*_
import time
import xlwt
import os
import pymysql
import sys
import datetime
from datetime import datetime, timedelta
class writefile:
file = r"D:\Users\xx\Desktop"
#查询数据库结果
def datacommon(self,mounth,day,n,abj):
res = []
self.date1 = self.dates(mounth,day,n,abj)
for date in self.date1:
starttime = date + ' 00:00:00'
endtime = date + ' 23:59:59'
#连接数据库
db = pymysql.connect(host="12.12.12.12", user="root", password="sqldb",port=3306, db="test")
# 使用cursor()方法获取操作游标
cursor = db.cursor()
cursor.execute(f"SELECT project_name FROM `data`.`table` WHERE project_name like \"%test%\" AND create_time between '{starttime}' and '{endtime}'")
project_name = sorted(set(cursor.fetchall()))
for name in project_name:
#计算主线数据
cursor.execute(f"SELECT count(*) FROM `data`.`table` where branch_name like lower(trim(\"%-{name[0]}\")) AND status=0 AND create_time between '{starttime}' and '{endtime}'")
succ_NUM = cursor.fetchall()[0][0]
cursor.execute(f"SELECT count(*) FROM `data`.`table` where branch_name like lower(trim(\"%-{name[0]}\")) AND status=2 AND create_time between '{starttime}' and '{endtime}'")
fail_NUM = cursor.fetchall()[0][0]
if fail_NUM !=0 and succ_NUM !=0:
fail_RATE = "%.2f%%" % (fail_NUM / (succ_NUM + fail_NUM) * 100)
else:
fail_RATE = 0
#计算分支数据
cursor.execute(f"SELECT count(*) FROM `data`.`table` where branch_name like lower(trim(\"%-{name[0]}-%\")) AND status=0 AND create_time between '{starttime}' and '{endtime}'")
succ_num = cursor.fetchall()[0][0]
cursor.execute(f"SELECT count(*) FROM `data`.`table` where branch_name like lower(trim(\"%-{name[0]}-%\")) AND status=2 AND create_time between '{starttime}' and '{endtime}'")
fail_num = cursor.fetchall()[0][0]
if fail_num !=0 and succ_num !=0:
fail_rate = "%.2f%%" % (fail_num / (succ_num + fail_num) * 100)
else:
fail_rate = 0
res1 = [date,name[0], succ_num, fail_num, fail_rate, succ_NUM, fail_NUM, fail_RATE]
res.append(res1)
return res
# 关闭数据库连接
db.close()
# 判断文件是否已存在
def if_file_exist(self):
if os.path.exists(self.file + "\数据展示.xls"):
os.remove(self.file + "\数据展示.xls")
# 生成excel
def write_excel(self, res):
book = xlwt.Workbook() # 新建一个excel
sheet = book.add_sheet('导出数据') # 创建sheet
title = ['统计区间', '版本','个人信息成功', '个人信息失败', '个人信息有效拦截率', '主线信息通过','主线信息失败','主线信息有效拦截率', '问题分析'] # 写表头
# 循环将title写入excel表头
i = 0
for header in title:
sheet.write(0, i, header)
i += 1
# 将数据写入Excel
for row in range(1, len(res) + 1):
for col in range(0, len(res[row - 1])):
sheet.write(row, col, res[row - 1][col])
col += 1
row += 1
book.save(self.file + "\数据展示.xls")
print("导出成功")
def dates(self,mounth,day,n=7,abj=0):
for i in range(1,n+1):
if abj != 0:
the_date = datetime.datetime(2021, mounth, day) # 指定当前日期 2018-11-10
the_date = the_date - datetime.timedelta(days=i)
date = the_date.strftime('%Y-%m-%d') # 将日期转换为指定的显示格式
else:
date = time.strftime('%Y-%m-%d', time.localtime(time.time() - 86400 * i))
yield date
def writefile(self):
n=7 #统计天数,默认为7天
mounth = 12 #统计日期
day = 12 #统计日期
abj= 0 #若值为0,则使用当前日期统计;若值为非0,则使用变量日期统计;默认为当前日期为准
self.if_file_exist()
res = self.datacommon(mounth,day,n,abj)
self.write_excel(res)
a=writefile()
a.writefile()
python连接数据库,处理数据结果后生成excel文件相关推荐
- python xlwt写入excel_python xlwt模块生成excel文件并写入数据 xlrd读取数据
python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...
- 获取jqGrid中的所有数据导出并生成Excel文件流供用户下载(post请求实现文件下载)...
最近有一个需求是: 将jqGrid表格中的数据生成报表Excel文件返回给用户. 我的想法是获取jqGrid中的数据然后生成json数据,传给后端,生成文件流,响应到前端,保存为excel文件. aj ...
- 针对大量数据,MATLAB生成EXCEL文件并进行排版处理的源码
#MATLAB生成EXCEL文件并进行排版处理的源码 项目要求:给定某海洋站潮位数据在一年之年的每分钟潮位数据(一共有24×60×365=525600个数),txt格式,要求制作出海洋站该年份的潮汐表 ...
- python获取json数据,快速生成excel
需要的python 安装包: pip install requests pip install pandas 一.通过requests 获取网页json数据 url = 'http://192.168 ...
- ASP.NET中上传并读取Excel文件数据,附后生成EXCEL及杀掉EXCEL进程。
本文通过一个简单的例子,实现读取Excel数据文件. 首先,创建一个Web应用程序项目,在Web页中添加一个DataGrid控件.一个文件控件和一个按钮控件. <INPUT id="F ...
- 办公自动化:轻松提取PDF页面数据,并生成Excel文件(代码实战)
发现网上有专门做文档格式转换的网站,不过是要充会员才可以.今天来做一篇PDF转换成Excel文档的代码实战,希望大佬喜欢,哈哈,话不多说,马上进入实战环节. [阅读全文] 首先,我们一如既往的介绍一下 ...
- python xlwt模块生成excel文件并写入数据 xlrd读取数据
python中一般使用 xlwt (excel write)来生成Excel文件(可以控制单元格格式),用 xlrd 来读取Excel文件,用xlrd读取excel是不能对其进行操作的. 1.xlrd ...
- python爬取沪深所有股票数据并生成Excel文件
爬取沪深所有股票数据并生成Excel文件 一.分析需求 1.对于沪深两市的各只股票,获取其:'股票代码', '股票名称', '最高', '最低', '涨停', '跌停', '换手率', '振幅', ' ...
- 【Python练习】如何使用Pandas获取“豆瓣电影”相关数据,并生成Excel表格
使用Python获取"豆瓣电影"相关数据,并生成Excel表格 本文使用了requests和pandas第三方库,对豆瓣电影各相关数据进行爬取,并记录至Excel表格内.但发现存在 ...
最新文章
- mysql字符串外键约束_MySQL中的约束函数主外键
- 解决IE6下不支持 png24的透明图片问题
- 3v stm32 供电 晶振起振_避免stm32rtc晶振不能起振的设计参考
- Winsock 入门 判读主机字节序 示例
- 文巾解题 面试题 03.06. 动物收容所
- ES6-9 对象密封4种方式、assign、取值函数的拷贝
- Android TextView设置ClickableSpan 点击结尾空白位置也响应点击的问题
- java可以返回微妙吗_Java开发中10个最为微妙的最佳编程实践
- dom4j.jar有什么作用?
- FD.io VPP基本介绍:理解向量包处理(VPP)
- android怎么让图片显示在button上面_opencv怎么样可以实时显示图片HSV值
- 四阶龙格库塔matlab计算例题,四阶龙格库塔法matlab实现
- python语音识别库kaldi_Kaldi 使用 DFSMN 训练语音模型
- python dataframe重新索引_Concat DataFrame重新索引仅对唯一值索引对象有效
- 阿里数据服务产品开发及大数据体系(实录/PPT干货)
- cad修改快捷键_CAD入门学习技巧:CAD软件中的CAD快捷键的分类
- 基金从业考试的考试形式是什么?0906
- 看了这个逻辑关系图,才更清晰为何不让你随便外出了
- 不同类型的轴承受力简介
- 一个软件测试人员的经验分享