Python实现将数据库一键导出为Excel表格的实例

Python实现将数据库一键导出为Excel表格的实例,第1张

概述数据库数据导出为excel表格,也可以说是一个很常用的功能了。毕竟不是任何人都懂数据库 *** 作语句的。

数据库数据导出为excel表格,也可以说是一个很常用的功能了。毕竟不是任何人都懂数据库 *** 作语句的。

下面先来看看完成的效果吧。

数据源

导出结果

依赖

由于是Python实现的,所以需要有Python环境的支持

Python2.7.11

我的Python环境是2.7.11。虽然你用的可能是3.5版本,但是思想是一致的。

xlwt
pip install xlwt

MysqLdb
pip install MysqLdb

如果上述方式不成功的话,可以到sourceforge官网上去下载windows上的msi版本或者使用源码自行编译。

数据库相关

本次试验,数据库相关的其实也就是如何使用Python *** 作数据库而已,知识点也很少,下述为我们本次用到的一些简单的语句。

连接

conn = MysqLdb.connect(host='localhost',user='root',passwd='MysqL',db='test',charset='utf8')

这里值得我们一提的就是最后一个参数的使用,不然从数据库中取出的数据就会使乱码。关于乱码问题,如果还有不明白的地方,不妨看下这篇文章 浅谈编码,解码,乱码的问题

获取字段信息

fIElds = cursor.description

至于cursor,是我们 *** 作数据库的核心。游标的特点就是一旦遍历过该条数据,便不可返回。但是我们也可以手动的改变其位置。

cursor.scroll(0,mode='absolute')来重置游标的位置

获取数据

获取数据简直更是轻而易举,但是我们必须在心里明白,数据项是一个类似于二维数组的存在。我们获取每一个cell项的时候应该注意。

results = cursor.fetchall()

Excel基础

同样,这里讲解的也是如何使用Python来 *** 作excel数据。

workbook

工作薄的概念我们必须要明确,其是我们工作的基础。与下文的sheet相对应,workbook是sheet赖以生存的载体。

workbook = xlwt.Workbook()

sheet

我们所有的 *** 作,都是在sheet上进行的。

sheet = workbook.add_sheet(‘table_message',cell_overwrite_ok=True)

对于workbook 和sheet,如果对此有点模糊。不妨这样进行假设。

日常生活中记账的时候,我们都会有一个账本,这就是workbook。而我们记账则是记录在一张张的表格上面,这些表格就是我们看到的sheet。一个账本上可以有很多个表格,也可以只是一个表格。这样就很容易理解了吧。 :-)

案例

下面看一个小案例。

# Coding:utf8import sysreload(sys)sys.setdefaultencoding('utf8')# __author__ = '郭 璞'# __date__ = '2016/8/20'# __Desc__ = 从数据库中导出数据到excel数据表中import xlwtimport MysqLdbconn = MysqLdb.connect('localhost','root','MysqL','test',charset='utf8')cursor = conn.cursor()count = cursor.execute('select * from message')print count# 重置游标的位置cursor.scroll(0,mode='absolute')# 搜取所有结果results = cursor.fetchall()# 获取MysqL里面的数据字段名称fIElds = cursor.descriptionworkbook = xlwt.Workbook()sheet = workbook.add_sheet('table_message',cell_overwrite_ok=True)# 写上字段信息for fIEld in range(0,len(fIElds)): sheet.write(0,fIEld,fIElds[fIEld][0])# 获取并写入数据段信息row = 1col = 0for 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(r'./readout.xlsx')

封装

为了使用上的方便,现将其封装成一个容易调用的函数。

封装之后

# Coding:utf8import sysreload(sys)sys.setdefaultencoding('utf8')# __author__ = '郭 璞'# __date__ = '2016/8/20'# __Desc__ = 从数据库中导出数据到excel数据表中import xlwtimport MysqLdbdef export(host,user,password,dbname,table_name,outputpath): conn = MysqLdb.connect(host,charset='utf8') cursor = conn.cursor() count = cursor.execute('select * from '+table_name) 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,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,u'%s'%results[row-1][col]) workbook.save(outputpath)# 结果测试if __name__ == "__main__": export('localhost','datetest',r'datetest.xlsx')

测试结果

ID name date1 dlut 2016-07-062 清华大学 2016-07-033 北京大学 2016-07-284 Mark 2016-08-205 Tom 2016-08-196 Jane 2016-08-21

总结

回顾一下,本次试验用到了哪些知识点。

•Python简易 *** 作数据库
•Python简易 *** 作Excel
•数据库取出数据乱码问题解决之添加charset=utf-8
•以二维数组的角度来处理获取到的结果集。

以上这篇Python实现将数据库一键导出为Excel表格的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持编程小技巧。

总结

以上是内存溢出为你收集整理的Python实现将数据库一键导出为Excel表格的实例全部内容,希望文章能够帮你解决Python实现将数据库一键导出为Excel表格的实例所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/langs/1202710.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-06-04
下一篇 2022-06-04

发表评论

登录后才能评论

评论列表(0条)

保存