专栏首页编程坑太多python从mysql导出数据导excel

python从mysql导出数据导excel

# coding:utf8
import sys
reload(sys)
sys.setdefaultencoding('utf8')
# author: 'zkx'
# date: '2018/3/11'
# Desc:从数据库中导出数据到excel数据表中
#已封装,可以直接使用,只需更改sql语句即可
import xlwt
import MySQLdb
def export(host,user,password,dbname,table_name,outputpath):
conn = MySQLdb.connect(host,user,password,dbname,charset='utf8')
cursor = conn.cursor()
        #时间戳相减,转换为时分秒    导出到excel时间格式要统一("%Y-%m-%d %H:%i:%S"),不然导出到excel为null
#concat(floor((lasto/1000-first/1000)/3600),"小时",floor(mod((last/1000-first/1000),3600)/60),"分钟",round(mod(mod((last/1000-first/1000),3600),60)),"秒")
count = cursor.execute('select node,nodealias,alertgroup,FROM_UNIXTIME(firstoccurrence/1000,"%Y-%m-%d %H:%i:%S") zuizao,FROM_UNIXTIME(lastoccurrence/1000,"%Y-%m-%d %H:%i:%S")zuiwan,(lastoccurrence/1000-firstoccurrence/1000) shijiancha from '+table_name+' where alertgroup="OIDTableMonitor-mdTemp" and  DATE_SUB(CURDATE(),INTERVAL 7 DAY) <=DATE(FROM_UNIXTIME(firstoccurrence/1000,"%Y-%m-%d %H:%i:%S"))')
print count
# 重置游标的位置
cursor.scroll(0,mode='absolute')
# 搜取所有结果
results = cursor.fetchall()
# 获取MYSQL里面的数据字段名称
fields = cursor.description
workbook = xlwt.Workbook()
sheet = workbook.add_sheet('table_'+table_name,cell_overwrite_ok=True)
# 写上字段信息
for field in range(0,len(fields)):
sheet.write(0,field,fields[field][0])
# 获取并写入数据段信息
row = 1
col = 0
for row in range(1,len(results)+1):
for col in range(0,len(fields)):
sheet.write(row,col,u'%s'%results[row-1][col])
workbook.save(outputpath)
# 测试
if __name__ == "__main__":
#mysql-ip,用户,密码,要执行库,要查询表,存放路径
export('12.16.15.14','eccom','eco','nete','ftnt',r'/opt/datest.xls')

本文分享自微信公众号 - 编程坑太多(idig88),作者:看更多☞

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2018-03-14

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • setInterval 和 setTimeout 用法

    IT故事会
  • 作为程序员,有没有让你感到既无语又崩溃的程序命名?

    IT故事会
  • 如何从挫败感到成就感,身为程序员每天都在经历这些!

    IT故事会
  • linux指定只显示(只打印)文件中的某几行(中间几行)

    cat filename | tail -n +3000 | head -n 1000

    sunsky
  • iOS Autolayout 修改约束优先级崩溃问题

    ZY_FlyWay
  • linux 如何显示一个文件的某几行(中间几行)

    sed -n '5,10p' filename 这样你就可以只查看文件的第5行到第10行。

    周小董
  • 巧用 Spring 自动注入快速实现策略模式

    写在前面:2020年面试必备的Java后端进阶面试题总结了一份复习指南在Github上,内容详细,图文并茂,有需要学习的朋友可以Star一下! GitHub地...

    用户5546570
  • 每日一题(12)

    解析: 计算中发生了数据溢出。Long类型很容易装得下这结果,溢出发生在int数据计算过程中

    KEN DO EVERTHING
  • python变量的基本使用

    Devops海洋的渔夫
  • Python 变量类型

    变量存储在内存中的值。这就意味着在创建变量时会在内存中开辟一个空间。 基于变量的数据类型,解释器会分配指定内存,并决定什么数据可以被存储在内存中。 因此,变量...

    小小科

扫码关注云+社区

领取腾讯云代金券