# !/usr/bin/env python

# -*- coding: utf-8 -*-

import MySQLdb

from datetime import datetime

import cx_Oracle

import os

import xlwt

import sys

reload(sys)

sys.setdefaultencoding('utf-8')

os.environ['NLS_LANG'] = 'SIMPLIFIED CHINESE_CHINA.UTF8'

import datetime #导入日期时间模块

today = datetime.date.today() #获得今天的日期

yesterday = today - datetime.timedelta(days=1)

def get_data(sql):

# 创建数据库连接.

conn = cx_Oracle.connect('xx/xx@10.2.10.11/esbdb')

# 创建游标

cur = conn.cursor()

# 执行查询,

cur.execute(sql)

# 由于查询语句仅会返回受影响的记录条数并不会返回数据库中实际的值,所以此处需要fetchall()来获取所有内容。

result = cur.fetchall()

# 关闭游标

cur.close()

# 关闭数据库连接

conn.close

# 返给结果给函数调用者。

print result

return result

def write_data_to_excel(name, sql):

# 将sql作为参数传递调用get_data并将结果赋值给result,(result为一个嵌套元组)

result = get_data(sql)

# 实例化一个Workbook()对象(即excel文件)

wbk = xlwt.Workbook(encoding='utf-8')

# 新建一个名为Sheet1的excel sheet。此处的cell_overwrite_ok =True是为了能对同一个单元格重复操作。

sheet = wbk.add_sheet('Sheet1', cell_overwrite_ok=True)

# 获取当前日期,得到一个datetime对象如:(2016, 8, 9, 23, 12, 23, 424000)

#today = datetime.today()

# 将获取到的datetime对象仅取日期如:2016-8-9

#today_date = datetime.date(today)

# 遍历result中的没个元素。

titlelist=['全局流水号','消费方','服务方','场景码','场景描述','返回码','返回信息','开发人员','运维人员','科室','交易耗时']

# for i in xrange(len(titlelist)):

# sheet.write(1, i, titlelist[i])

# wbk.save(name + str(yesterday) + '.xls')

for i in xrange(len(result)):

# 对result的每个子元素作遍历,

if i==0:

for x in xrange(len(titlelist)):

sheet.write(0, x, titlelist[x])

for j in xrange(len(result[i])):

y=i+1

# 将每一行的每个元素按行号i,列号j,写入到excel中。

sheet.write(y, j, result[i][j])

# 以传递的name+当前日期作为excel名称保存。

wbk.save(name + str(yesterday) + '.xls')

# 如果该文件不是被import,则执行下面代码。

if __name__ == '__main__':

aa= 'to_date' + "('" + str(yesterday) + ' ' + "00:00:00'," + " 'yyyy-mm-dd hh24:mi:ss')"

bb= 'to_date' + "('" + str(yesterday) + ' ' + "23:59:59'," + " 'yyyy-mm-dd hh24:mi:ss')"

mysql="select /*+ parallel(t 8)*/ distinct \

t.esbserviceflowno,\

t.logicchannel,\

t.logicsystem,\

t.serviceid,\

s.description,\

t.respcode,\

t.respmsg,\

p.developer,\

p.operator,\

p.department,\

floor ((esbtimediff(to_timestamp(transtamp4, 'yyyy-mm-dd hh24:mi:ss.xff'),\

to_timestamp(transtamp1, 'yyyy-mm-dd hh24:mi:ss.xff'))) / 1024) ctime\

from esb2_trans_log t\

left join serviceinfo s\

on t.serviceid = s.serviceid\

left join tlcb_esb_yyzz p\

on t.logicsystem=p.name\

where t.trans_date >=trunc(sysdate)\

and t.trans_date <=trunc(sysdate+1)\

and (t.respmsg not like '%Read timed out%' and t.respmsg not like '%异常%' and\

t.respmsg not like '%超时%')\

and t.respcode = '000000'\

and t.flowstepid in ('4','E') \

and t.logicsystem in\

('NCBS', 'ECIF', 'CNAPS', 'ELINK', 'IBPS', 'ELINKHD', 'GAPS', 'GXP','IBANK')\

and floor((esbtimediff(to_timestamp(transtamp4, 'yyyy-mm-dd hh24:mi:ss.xff'),\

to_timestamp(transtamp1, 'yyyy-mm-dd hh24:mi:ss.xff'))) / 1024)>1\

order by ctime desc\

"

mysql = mysql.replace('fffff',aa)

mysql =mysql.replace('ggggg',bb)

print mysql

# 定义一个字典,key为对应的数据类型也用作excel命名,value为查询语句

title='Top交易系统_交易耗时清单'

title=title.decode('utf-8').encode('gbk')

db_dict = {title: mysql}

# 遍历字典每个元素的key和value。

for k, v in db_dict.items():

# 用字典的每个key和value调用write_data_to_excel函数。

write_data_to_excel(k, v)

pythonexcel怎么生成_Python自动生成Excel,python,excel相关推荐

  1. python 测试用例管理 生成_python自动生成接口测试用例

    在python中Template可以将字符串的格式固定下来,重复利用. 同一套测试框架为了可以复用,所以我们可以将用例部分做参数化,然后运用到各个项目中. 代码如下: coding=utf-8 ''' ...

  2. python自动生成表格_Python自动生成绩效考核表并发送邮件

    相信大家经常在工作中见到一些数据报告,比如周报啊,月报啊,绩效考核表之类的数据表格,这些表格每个月我们都需要发送给固定的人,比如领导,对于这些报告,有的需要手工导入数据,而有的其实都是一些固定数据,所 ...

  3. 人生苦短我学python表情包_Python自动生成表情包

    原标题:Python自动生成表情包 源| 创业智库文| 唐一 作为一个数据分析师,应该信奉一句话----"一图胜千言".不过这里要说的并不是数据可视化,而是一款全民向的产品形态-- ...

  4. python自动化代码生成_python 自动生成C++代码 (代码生成器)

    Python代码自动生成方法(代码生成器)遇到这种事在工作遇到问题,你需要写很多c++基础数据库类,但这些类是一样的,只不过是添加,删除,修改并检查.如果你手动编写代码,它是费力而容易出错;它可以很容 ...

  5. python api接口生成_Django 自动生成api接口文档教程

    最近在写测试平台,需要实现一个节点服务器的api,正好在用django,准备使用djangorestframework插件实现. 需求 实现一个接口,在调用时,通过传递的参数,直接运行对应项目的自动化 ...

  6. 字典生成_Python数据字典生成工具详解

    Python还被大家称为"胶水语言",它适用于网站.桌面应用开发.自动化脚本.复杂计算系统.科学计算.生命支持管理系统.物联网.游戏.机器人.自然语言处理等很多方面.对于职场人来说 ...

  7. dump java崩溃自动 不生成_GitHub 自动生成 .gitignore,只想写代码不重要的事情别烦我...

    代码上传 GitHub 为何半途而废?因为只想写代码,readme 不想写,gitignore 不想管. readme 不想写已经有救了,我们发现了 readme 自动生成工具 你已经是个成熟的 Gi ...

  8. mysql 自动生成mapper_自动生成实体类、Mapper、Mapper.xml文件

    自动生成实体类.Mapper.Mapper.xml文件 搭建Spring Boot + Mysql + MyBatis 项目 核心 配置pom.xml 创建表 配置文件 生成文件 结果 项目结构 搭建 ...

  9. mysql 单据编号生成_mysql自动生成单据编号

    这一句SQL就可以直接生成唯一的单据编号,方便直接插入主表 select CONCAT ('test_', DATE_FORMAT(now(), '%Y%m%d'), RIGHT(CONCAT ('0 ...

  10. 简单的二维码生成接口,自动生成二维码,返回图片地址

    自动生成二维码,返回图片地址 本来不想写的,但是怕太久不写这个东西,就要荒废了,就先记录一下简单的东西 这里因为,返回地址的时候,通过了nginx ,我试了很多方法都抓取不到对应的IP地址, 就在ng ...

最新文章

  1. 转从Qt4 到Qt5的变化
  2. eclipse 开发常见问题集锦
  3. gitlab远程提交
  4. python3 tensorflowprint错误_解决import tensorflow as tf 出错的原因
  5. python编写人机交互界面_Python编写个天气查询应用(可视化界面)
  6. hook 监控文件 c++_技术分享 | Linux 入侵检测中的进程创建监控
  7. 【Java】关键词梳理
  8. golang 锁的使用
  9. 计算机原理及应用课程,课程描述
  10. 谷粒商城:16.商城业务 — 首页
  11. 通过两个简单的案例,让你明白ansible playbook的编写核心
  12. 服务器位置设置在哪,服务器位置设置在哪
  13. cnPuTTY 0.77.0.1—PuTTY Release 0.77中文版本简单说明~~
  14. java 类方法中this_Java Eclipse 中 在类与方法调用中 (this)的用法
  15. 计算机毕业设计java+ssm协同过滤推荐算法的电影资源平台(源码+系统+mysql数据库+Lw文档)
  16. 51单片机之一套完整的实验流程
  17. 鼠标计算机英语怎么说,计算机鼠标器,computer mouse,音标,读音,翻译,英文例句,英语词典...
  18. kali 更新后出现乱码的解决方案
  19. 福昕:十年暗战Adobe
  20. android安卓导航下载地址,安卓导航辅助软件:Android搜星帮助文件

热门文章

  1. charles抓包踩过的坑之一 ——手机开了代理,不能访问网络
  2. shx文件怎么导入cad_「设计师必备技能」打开cad图纸缺少shx字体,图纸乱码怎么办?...
  3. cad迷你画图 mac
  4. 在虚拟机的ubuntu 中配置 tftp 服务器(2021-4-14)
  5. python 更新pip报错 解决方法大全
  6. android暗水印技术,基于Android的隐藏数字水印技术的研究与实现
  7. 用HTML和CSS制作简单的静态网页
  8. BI项目规划的四个建议
  9. 企业开展自媒体推广,重点是什么?
  10. 使用原生js实现图片放大器效果