#!/usr/bin/env python
#coding:utf-8
# cx_Oracle 用于访问oracle和导出数据
import cx_Oracle
# xlsxwriter 用于生成xlsx文件
import xlsxwriter
import time
import sys
# 导入邮件模块
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
import smtplibreload(sys)
sys.setsys.setdefaultencodingdefaultencoding("gbk")     #修改默认编码为“gbk”,解决中文编码问题 不进行设置会出现 UnicodeDecodeError: 'ascii' codec can't decode byte 0xa1 in position 36: ordinal not in range(128)con = cx_Oracle.connect("comm/12345678@orcl")
cursor = con.cursor()#定义SQL脚本 由于脚本包含中文,使用decode('utf-8').encode('gbk') 对其进行转换
sql ='''
select count 收费金额,locate 分中心
from business
'''.decode('utf-8').encode('gbk')query1 = cursor.execute(sql)   #执行查询title = [i[0] for i in query1.description]date_now=time.strftime("%Y%m%d",time.localtime())#文件名及其路径report_name='/excel/' + "业务数据".decode('utf-8').encode('gbk') + date_now + '.xlsx'#生成xlsx格式oracle查询统计报表workbook = xlsxwriter.Workbook(report_name, {'constant_memory': True})
worksheet = workbook.add_worksheet()
print time.ctime()
data = cursor.fetchall()
print time.ctime()
worksheet.write_row(0, 0, title)
for row, row_date in enumerate(data):worksheet.write_row(row+1, 0, row_date)
print time.ctime()
cursor.close()
con.close()
workbook.close()#以下代码实现发送邮件msg = MIMEMultipart()#定义附件名att1_name="业务数据".decode('utf-8').encode('gbk') + date_now + '.xlsx' #读入附件,report_nameatt1 = MIMEText(open(report_name, 'rb').read(), 'base64', 'gb2312')
att1["Content-Type"] = 'application/octet-stream'
att1["Content-Disposition"] = 'p_w_upload; filename=%s' % att1_name.encode('gbk')
msg.attach(att1)msg['to'] = 'boss@126.com'
msg['from'] = 'report@126.com'
msg['subject'] = "每周业务数据".decode('utf-8').encode('gbk')
try:server = smtplib.SMTP()server.connect('mail.126.com')server.login('report@126.com','12345678')#server.sendmail(msg['from'], msg['to'],msg.as_string())server.quit()print 'successful.'
except Exception, e:print str(e)

转载于:https://blog.51cto.com/justfun/1670002

使用python生成oracle数据报表相关推荐

  1. oracle数据导入到python,Python导入oracle数据的方法 -电脑资料

    作者:Sephiroth 字体:[增加 减小] 类型:转载 这篇文章主要介绍了Python导入oracle数据的方法,涉及Python读取csv文件信息再插入到Oracle数据库的相关技巧,具有一定参 ...

  2. python生成正态分布数据_python 生成正态分布数据,并绘图和解析

    1.生成正态分布数据并绘制概率分布图 import pandas as pd import numpy as np import matplotlib.pyplot as plt # 根据均值.标准差 ...

  3. oracle数据导入到python,Python导入oracle数据的方法

    Python导入oracle数据的方法 本文实例讲述了Python导入oracle数据的方法.分享给大家供大家参考.具体如下: import cx_Oracle dns_tns=cx_Oracle.m ...

  4. python生成可视化数据(matplotlib)

    我们知道python做数据分析是一流的,把数据变为可视化内容,如果我们有一个表格,表格里面有很多数据,我们该如何把这些数据转换为可视化数据咧.首页,我们来看下如何来进行操作的吧. 首先,我们先看下我们 ...

  5. 用 Python 自动生成 Excel 数据报表~

    大家好,我是小z 今天给大家来一波实战,使用Python自动化生成数据报表! 从一条条的数据中,创建出一张数据报表,得出你想要的东西,提高效率. 主要使用到pandas.xlwings以及matplo ...

  6. python 正弦曲线_使用python生成正弦波数据

    在调试ESP32的音频功能的时候,需要对声音的效果做个测试,需要1khz的正弦波c语言数组形式的数据,采样率为16k.这么算也就是一个完整的正弦波波形用16个点来表示.如何快速获取这样的数据,又想起来 ...

  7. Python读取Oracle数据乱码问题解决

    [问题描述] 在使用Python读取Oracle中数据的时候,遇到了中文乱码的问题,简单举例如下: import cx_Oracle import pandas as pdconn = cx_Orac ...

  8. python 生成随机数据,随机中文,英文,数字,姓名等

    笔者也经常在网上查询信息,但发现很多信息都是照搬,内容甚至有错误,可用性很低.笔者就认为如果要分享就应该把遇到的问题真实的分享出来,让更多同路人少走弯路.节约时间. 觉得这篇文章有帮助的同学可以点个赞 ...

  9. 用Python自动生成Excel数据报表!

    大家好,我是辰哥~ 点击下方名片关注和星标『Python研究者』!

最新文章

  1. python基础、print,input,if判断等
  2. python 导入其他上级目录的模块
  3. asp.net)js 在当前日期上加一天和系统发布
  4. 【Python】Python中常用的字符串处理函数
  5. ABAP中分页控件的定义
  6. Win2008建立kms服务器vlmcsd
  7. AtCoder Beginner Contest 261笔记
  8. 微型计算机课程设计电子密码锁,《微机原理及应用》课程设计基于74LS112的电子密码锁设计报告初版...
  9. Python基础综合训练三(tkinter牛刀小试)
  10. python复杂背景抠图_Opencv实现抠图背景图替换功能
  11. linux 自动降频,Linux资格认证:Ubuntu下对CPU进行降频
  12. Chrome 印象笔记.剪裁登录弹出国际版
  13. 力扣88 - 合并两个有序数组【归并排序思维】
  14. 混凝土抗压弹性模量自动计算表_2011混凝土弹性模量试验.doc
  15. vue项目接入e2e自动化测试
  16. 谈谈“老鼠找毒水“和“猪找毒水”问题
  17. 小说文学行业之“盛大文学”
  18. java将本地图片复制添加水印并导出到本地
  19. 求网络号,广播地址,第一个可用ip,最后一个可用ip。可用ip总数
  20. 手机蓝牙控制51单片机实现对led灯的开关

热门文章

  1. 【技巧】Vivado 仿真器simulation显示模拟波形图(非数字波形)
  2. 研华数据采集板卡驱动包Xnavi离线包制作教程
  3. AOMEI Backupper 6.5.0所有版本+引导旧版和UEFI
  4. 计算机应用基础模块四,计算机应用基础模块四PPT课件.ppt
  5. 自动驾驶汽车涉及哪些技术?
  6. Nor Flash的理论性能
  7. 自己动手实现软件测试项目_自己动手的项目
  8. 手机微信浏览器调用图片放大功能
  9. 点对点通信解决透明传输的方法
  10. 2023年上半年数据库系统工程师上午真题及答案解析