python数据导出excel_Python实现数据库一键导出为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’)
这里值得我们一提的就是最后一个参数的使用,不然从数据库中取出的数据就会使乱码。关于乱码问题,如果还有不明白的地方,不妨看下这篇文章http://blog.csdn.net/marksinoberg/article/details/52254401。
获取字段信息
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: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',charset='utf8')
cursor = conn.cursor()
count = cursor.execute('select * from message')
print count
# 重置游标的位置
cursor.scroll(0,mode='absolute')
# 搜取所有结果
results = cursor.fetchall()
# 获取MYSQL里面的数据字段名称
fields = cursor.description
workbook = 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 = 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,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,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',r'datetest.xlsx')
import xlwt
import pymysql,string
def export(host,user,password,dbname,table_name,outputpath):
conn = pymysql.connect(host,user,password,dbname,charset='utf8')
cursor = conn.cursor()
count = cursor.execute('select * from '+table_name)
print('count:',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__":
export('118.24.3.40','jxz','123456','jxz','app_student','app_student.xls')
import yagmail
#账号 密码 邮箱服务器 收件人 抄送 主题 正文 附件
username='xhylwq@163.com'
passwd='Admin12345' #邮箱的授权密码 ,#SMTP授权码 #535错误,AUTH错误,基本上是授权码错误
mail=yagmail.SMTP(user=username,password=passwd,host='smtp.163.com') #QQ邮箱要加这个参数,连接上邮箱了 #smtp_ssl=True 安全协议,,163不需要
# mail.send(to='524974839@qq.com',cc='511402865@qq.com',subject='开会123',contents='上午9点开会123') # 发送、抄送给一人
mail.send(to=['524974839@qq.com','526015033@qq.com','695374133@qq.com','xhylwq@163.com'], # 发送给多人,to传list(win10路径写\\)
cc=['511402865@qq.com','1026791861@qq.com'],
subject='app_student导出',
contents='app_student导出20:08',
attachments=r'G:\\python-DownLoad\\练习code\\day6\\day6-作业\\app_student.xls')
测试结果
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
数据库取出数据乱码问题解决之添加charset=utf-8
以二维数组的角度来处理获取到的结果集。
python数据导出excel_Python实现数据库一键导出为Excel表格-----转载相关推荐
- python如何读取数据并输出为表格_Python实现将数据库一键导出为Excel表格的实例...
数据库数据导出为excel表格,也可以说是一个很常用的功能了.毕竟不是任何人都懂数据库操作语句的. 下面先来看看完成的效果吧. 数据源 导出结果 依赖 由于是Python实现的,所以需要有Python ...
- python数据导出excel模板中的脚本_Python实现将数据库一键导出为Excel表格的实例...
数据库数据导出为excel表格,也可以说是一个很常用的功能了.毕竟不是任何人都懂数据库操作语句的. 下面先来看看完成的效果吧. 数据源 导出结果 依赖 由于是Python实现的,所以需要有Python ...
- python生成excel表格-Python实现将数据库一键导出为Excel表格的实例
数据库数据导出为excel表格,也可以说是一个很常用的功能了.毕竟不是任何人都懂数据库操作语句的. 下面先来看看完成的效果吧. 数据源 导出结果 依赖 由于是Python实现的,所以需要有Python ...
- python 销售数据分析输出表格_Python实现将数据库一键导出为Excel表格的实例
Python实现将数据库一键导出为Excel表格的实例 下面小编就为大家带来一篇Python实现将数据库一键导出为Excel表格的实例.小编觉得挺不错的,现在就分享给大家, 数据库数据导出为excel ...
- 导入excel表格到数据库、导入excel表格到数据库代码、根据excel表格路径将数据导入到数据库、验证要导入的excel表格数据、根据路径获取MultipartFile、FileItem文件
导入excel表格到数据库.根据路径导入excel表格到数据库代码.根据excel表格路径将数据导入到数据库.验证要导入的excel表格数据.根据路径获取MultipartFile.FileItem文 ...
- excel xml mysql数据库,数据库文本文档excel表格-excel xml格式的文件 导入到 MYSQL 数据库的语句...
教你怎样将Word表格导入到Excel中 方法如下: 1.首先,打开媒介工具"记事本",将word文件里需要导入的数据,复制粘贴到记事本当中,然后保存成为txt文件,本例中将txt ...
- mysql数据转储方法_Mysql数据库各种导出导入数据方式的区别(我的理解错误还望指正)...
mysqldump,NAVICAT转储,select * outfile在千级数据,万级,百万级数据下的表现. 千级数据 mysqldump导出sql文件 导出是出了拒绝访问的错误:为对应目录(.sq ...
- 英文版mysql数据导出_Data Loader(数据库导入导出)V4.9.4 英文版
Data Loader(数据库导入导出)是一款专业可靠的数据库程序.能够导出和导入许多常见数据库之间的数据格式.如果你想转换MS SQL Server,CSV或女士访问MySQL,这是最好的工具有效地 ...
- python列表导出excel_python将字典列表导出为Excel文件的方法
将如下的字典列表内容导出为Excel表格文件形式: python将字典列表导出为Excel文件的方法,如下所示: 1.安装python官方Excel库------xlwt 直接在终端进行安装即可:pi ...
最新文章
- 使用 XSL 样式表无法查看 XML 输入。请更正错误然后单击 刷新按钮,或以后重试。...
- AVEVA软件编程是C语言么,AVEVA PDMS 三维文字工具
- (25)Vue.js组件通信—父组件向子组件传值
- 百面机器学习 #3 经典算法:02 逻辑回归
- css预处理器_【第十一课】初尝CSS的预处理器
- OpenCV-自适应阈值函数cv::adaptiveThreshold
- c# owc11 双Y轴
- 19 个接私活平台汇总,今天我们只聊用技术挣钱
- ADSL共享上网方式大总结(图)
- matlab数据归一化mapminmax函数
- 网页与服务器数据库数据交互,网页与ACCESS数据库如何实现数据交互?
- CCF CSP 201903-1 小中大(C语言100分)[序列处理]
- python——文件处理
- iis mysql安装包下载_配置Windows Server2008+iis+php+mysql所需下载安装包
- sql同比环比 简单示例
- CF1219G Harvester 题解
- delphi 向窗体发送一个字符串_IoT Hub入门(2)模拟设备发送设备到云(d2c)的消息
- 武侠小说中绝顶高手生存指南
- 日本美术学校有哪些,日本美术学校排名榜
- Linux----软件安装及程序管理