秦皇岛网站建设,岳阳云溪区建设局网站,网页制作公司列举自己的优势,重庆微信营销网站建设数据库数据导出为excel表格#xff0c;也可以说是一个很常用的功能了。毕竟不是任何人都懂数据库操作语句的。
下面先来看看完成的效果吧。
数据源导出结果依赖
由于是Python实现的#xff0c;所以需要有Python环境的支持
Python2.7.11
我的Python环境是2.7.11。虽然你用的可…数据库数据导出为excel表格也可以说是一个很常用的功能了。毕竟不是任何人都懂数据库操作语句的。
下面先来看看完成的效果吧。
数据源导出结果依赖
由于是Python实现的所以需要有Python环境的支持
Python2.7.11
我的Python环境是2.7.11。虽然你用的可能是3.5版本但是思想是一致的。
xlwtpip install xlwt
MySQLdbpip install MySQLdb
如果上述方式不成功的话可以到sourceforge官网上去下载windows上的msi版本或者使用源码自行编译。
数据库相关
本次试验数据库相关的其实也就是如何使用Python操作数据库而已知识点也很少下述为我们本次用到的一些简单的语句。
连接
conn MySQLdb.connect(hostlocalhost,userroot,passwdmysql,dbtest,charsetutf8)
这里值得我们一提的就是最后一个参数的使用不然从数据库中取出的数据就会使乱码。关于乱码问题如果还有不明白的地方不妨看下这篇文章 浅谈编码,解码,乱码的问题
获取字段信息
fields cursor.description
至于cursor是我们操作数据库的核心。游标的特点就是一旦遍历过该条数据便不可返回。但是我们也可以手动的改变其位置。
cursor.scroll(0,modeabsolute)来重置游标的位置
获取数据
获取数据简直更是轻而易举但是我们必须在心里明白数据项是一个类似于二维数组的存在。我们获取每一个cell项的时候应该注意。
results cursor.fetchall()
Excel基础
同样这里讲解的也是如何使用Python来操作excel数据。
workbook
工作薄的概念我们必须要明确其是我们工作的基础。与下文的sheet相对应workbook是sheet赖以生存的载体。
workbook xlwt.Workbook()
sheet
我们所有的操作都是在sheet上进行的。
sheet workbook.add_sheet(‘table_message,cell_overwrite_okTrue)
对于workbook 和sheet如果对此有点模糊。不妨这样进行假设。
日常生活中记账的时候我们都会有一个账本这就是workbook。而我们记账则是记录在一张张的表格上面这些表格就是我们看到的sheet。一个账本上可以有很多个表格也可以只是一个表格。这样就很容易理解了吧。 :-)
案例
下面看一个小案例。
# coding:utf8
import sys
reload(sys)
sys.setdefaultencoding(utf8)
# __author__ 郭 璞
# __date__ 2016/8/20
# __Desc__ 从数据库中导出数据到excel数据表中
import xlwt
import MySQLdb
conn MySQLdb.connect(localhost,root,mysql,test,charsetutf8)
cursor conn.cursor()
count cursor.execute(select * from message)
print count
# 重置游标的位置
cursor.scroll(0,modeabsolute)
# 搜取所有结果
results cursor.fetchall()
# 获取MYSQL里面的数据字段名称
fields cursor.description
workbook xlwt.Workbook()
sheet workbook.add_sheet(table_message,cell_overwrite_okTrue)
# 写上字段信息
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(r./readout.xlsx)
封装
为了使用上的方便现将其封装成一个容易调用的函数。
封装之后
# coding:utf8
import sys
reload(sys)
sys.setdefaultencoding(utf8)
# __author__ 郭 璞
# __date__ 2016/8/20
# __Desc__ 从数据库中导出数据到excel数据表中
import xlwt
import MySQLdb
def export(host,user,password,dbname,table_name,outputpath):
conn MySQLdb.connect(host,user,password,dbname,charsetutf8)
cursor conn.cursor()
count cursor.execute(select * from table_name)
print count
# 重置游标的位置
cursor.scroll(0,modeabsolute)
# 搜取所有结果
results cursor.fetchall()
# 获取MYSQL里面的数据字段名称
fields cursor.description
workbook xlwt.Workbook()
sheet workbook.add_sheet(table_table_name,cell_overwrite_okTrue)
# 写上字段信息
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__:
export(localhost,root,mysql,test,datetest,rdatetest.xlsx)
测试结果
id name date
1 dlut 2016-07-06
2 清华大学 2016-07-03
3 北京大学 2016-07-28
4 Mark 2016-08-20
5 Tom 2016-08-19
6 Jane 2016-08-21
总结
回顾一下本次试验用到了哪些知识点。
•Python简易操作数据库
•Python简易操作Excel
•数据库取出数据乱码问题解决之添加charsetutf-8
•以二维数组的角度来处理获取到的结果集。
以上这篇Python实现将数据库一键导出为Excel表格的实例就是小编分享给大家的全部内容了希望能给大家一个参考也希望大家多多支持我们。
本文标题: Python实现将数据库一键导出为Excel表格的实例
本文地址: http://www.cppcns.com/jiaoben/python/175361.html