使用python生成甲骨文数据报表

   # !/usr/bin/env  python   utf - 8编码:   #,cx_Oracle 用于访问甲骨文和导出数据   import  cx_Oracle   #,xlsxwriter 用于生成xlsx文件   import  xlsxwriter   import 时间   import 系统   #,导入邮件模块   得到email.mime.text  import  MIMEText   得到email.mime.multipart  import  MIMEMultipart   import  smtplib   ,   重载(系统)   sys.setsys.setdefaultencodingdefaultencoding (“gbk”),,,,, #修改默认编码为“gbk”,解决中文编码问题,不进行设置会出现,UnicodeDecodeError:,“ascii”, codec 可以't  decode  byte  0 xa1  position  36:拷贝,ordinal  not 拷贝射程(128)   ,   时间=con  cx_Oracle.connect(“通讯/12345678 @orcl”)   时间=cursor  con.cursor ()   ,   #定义SQL脚本,由于脚本包含中文,使用解码(utf - 8) .encode (“gbk”),对其进行转换   sql ="的   select  count 收费金额,   ,,,,locate 分中心   得到业务   “‘.decode (utf - 8) .encode (“gbk”)   ,   时间=query1  cursor.execute (sql),,, #执行查询   ,   title =,[我[0],for 小姐:拷贝query1.description]   ,   date_now=time.strftime (“% Y % m % d”, time.localtime ())   ,   #文件名及其路径   ,   report_name='/excel/', +,“业务数据“.decode (utf - 8) .encode (gbk), +, date_now  +,“.xlsx”   ,   #生成xlsx格式甲骨文查询统计报表   ,   时间=workbook  xlsxwriter.Workbook (report_name, {“constant_memory”:真})   时间=worksheet  workbook.add_worksheet ()   print  time.ctime ()   时间=data  cursor.fetchall ()   print  time.ctime ()   worksheet.write_row(0, 0,标题)   行,for  row_date 拷贝;列举(数据):   ,,,worksheet.write_row(0, + 1行,还以为;row_date)   print  time.ctime ()   cursor.close ()   con.close ()   workbook.close ()   ,   #以下代码实现发送邮件   ,   时间=msg  MIMEMultipart ()   ,   #定义附件名   ,   “.decode att1_name="业务数据(utf - 8) .encode (gbk), +, date_now  +,“.xlsx”,   ,   #读入附件,report_name   ,=att1  MIMEText(开放(report_name, rb) .read (),“base64”,“gb2312”)   att1(“内容类型”),=,“应用程序/八进制”   att1(“附加”),=,=% s p_w_upload;,文件名的,%,att1_name.encode (“gbk”)   msg.attach (att1)   ,   味精(','],=,“boss@126.com”   味精(“的”),=,“report@126.com”   味精(“主题”),=,“每周业务数据“.decode (utf - 8) .encode (“gbk”)   试一试:   ,,,server =, smtplib.SMTP ()   ,,,server.connect (“mail.126.com”)   ,,,server.login (“report@126.com”、“12345678”) #   ,,,server.sendmail(味精['从'],味精(','],msg.as_string ())   ,,,server.quit ()   ,,,print “成功”。   例外,except  e:   ,,,print  str (e)


使用python生成甲骨文数据报表