数据库内容到EXCEL-阿里云开发者社区

开发者社区> 像教授> 正文

数据库内容到EXCEL

简介:
+关注继续查看

 继Python将数据库数据导入到EXCEL章之后,这次来一个推进版,将其编写为函数,接着是class。哈哈。

     问过群里的朋友,他们大多采用工具将数据导入到excel,本人以前是用select ... into outfile 导出为csv格式,但是这样的数据是没有列标题的,每次手动添加。后来用过sqlyog 这个工具也没有列标题。后来改用Navicat,觉得以后可以过安稳日子啦,有一次新项目上线,运营要“全部”数据(真不知道他们怎么想的),用navicat 试了一次,慢的要死。还经常无故终止,真是恶心死我啦。

     对于导出“全部”数据,简单高效点。我决定用Python解析一次。中心思想是:用Python MySQLdb 模块 从Information_schema中得出数据内容的列标题,利用xlwt模块创建excel文件,并写入数据。下面贴出代码,欢迎各位拍砖:

#!/usr/bin/env python
import sys
import MySQLdb
import xlwt
db=sys.argv[1]
table=sys.argv[2]
def xls(sql='select * from %s.%s'):
    #xls info
    wbk=xlwt.Workbook()
    sheet=wbk.add_sheet('sheet 1')
    #connect Info
    try:
        conn=MySQLdb.connect(host='127.0.0.1',user='root',passwd='XXXXX')
        cursor=conn.cursor()
        cursor.execute('use information_schema')
        cursor.execute('select COLUMN_NAME  from COLUMNS where TABLE_NAME=%s and TABLE_SCHEMA=%s',(table,db))
        columnName=cursor.fetchall()
        columnLen=len(columnName)
        columnNum=0
        for data in range(columnLen):
                sheet.write(0,columnNum,columnName[columnNum][0])
                columnNum +=1
        cursor.execute(sql % (db,table))
        dataInfo=cursor.fetchall()
        rowLine=0
        for line in range(len(dataInfo)):
                lineInfo=dataInfo[line]
                rowLine+=1
                columnLine=0
                for row in lineInfo:
                        sheet.write(rowLine,columnLine,row)
                        columnLine+=1
        wbk.save('%s.xls' % table)
        cusor.close()
        conn.commit()
        conn.close()
    finally :
        conn.close()
        sys.exit(1)
if __name__=='__main__':
        xls()




本文转自 位鹏飞 51CTO博客,原文链接:http://blog.51cto.com/weipengfei/1008294,如需转载请自行联系原作者

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
OceanBase数据库漫谈
从开发视角、运维视角、数据拆分漫谈OceanBase
22 0
node+mysql+express接口开发数据库连接池
node+mysql+express接口开发数据库连接池
18 0
上云第一课第一期部署MySQL数据库
主要讲述数据的部署以及使用
19 0
node+express controller
Node + Express Controller
14 0
教育培训机构使用阿里云无影桌面优缺点
配置灵活,GPU满足设计产品线,价格低廉,随开随用。
28 0
Node + Express + MySQL 接口开发完整案例
Node + Express + MySQL 接口开发完整案例
20 0
【mockito】单元测试之mockito简单使用
项目使用的是springmvc+mybatis 开发; mock包为 mockito-all;虽然也引用了powermock,但截至目前,还未使用到;如果使用到后续再补相关笔记。
15 0
工商银行实时大数据平台建设历程及展望
中国工商银行大数据平台负责人袁一在 FFA 2021 的分享
29 0
浅谈我对DDD领域驱动设计的理解
DDD的全称为Domain-driven Design,即领域驱动设计。下面我从领域、问题域、领域模型、设计、驱动这几个词语的含义和联系的角度去阐述DDD是如何融入到我们平时的软件开发初期阶段的。要理解什么是领域驱动设计,首先要理解什么是领域,什么是设计,还有驱动是什么意思,什么驱动什么。
12 0
ACP实战特训营RDS(DAY3)
要点记录 1. PolarDB的基本概念 1.1、对比单机数据库优势有哪些:简单易用、极致性能、降低成本、海量存储、安全可靠、快速弹性 1.2 、单机数据库容量瓶颈-单机数据库扩展困难-数据库使用成本过高-分布式数据库应用开发繁琐 2. PolarDB产品系列:集群版-单节点-历史库-多主架构 2.1、集群:一个集群包含一个主节点和多个读节点,最多16个节点,即一个主节点和15个只读节点 2.2、地域:是指物理的数据中心,一般情况下,PolarDB集群应该和ECS实例位于同一地域,以实现最高的访问性能
14 0
+关注
1338
文章
0
问答
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载