数据库数据导出为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: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')
测试结果
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表格的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持小牛知识库。
本文向大家介绍Vue2.0实现将页面中表格数据导出excel的实例,包括了Vue2.0实现将页面中表格数据导出excel的实例的使用技巧和注意事项,需要的朋友参考一下 这两天学习了Vue.js 感觉知识点挺多的,所以,今天添加一点小笔记。 项目中将后台返回的数据v-for到表格中,然后需要将这个表格导出为EXCEL 只说怎么做。 一、需要安装三个依赖: 二、项目中新建一个文件夹:(vendor-
本文向大家介绍python实现数据写入excel表格,包括了python实现数据写入excel表格的使用技巧和注意事项,需要的朋友参考一下 本文实例为大家分享了python数据写入excel表格的具体代码,供大家参考,具体内容如下 安装: xlsxwriter第三方库 code: 以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持呐喊教程。
问题内容: 我有一个xlsx格式的下表,我想将其导入到我的sql数据库中: 该表非常复杂,我只需要‘1)HEADING’之后的记录 我一直在寻找要导入sql的php库,但它们似乎仅用于简单的excel文件。 问题答案: 您有两种方法可以实现: 第一种方法: 1)将其导出为某种文本格式。最简单的可能是制表符分隔的版本,但是CSV也可以使用。 2)使用负载数据功能。参见http://dev.mysql
本文向大家介绍JSP 导出Excel表格的实例,包括了JSP 导出Excel表格的实例的使用技巧和注意事项,需要的朋友参考一下 java 后台返回一个ModelAndView 对象,然后加入这2行设置 也可以把这二行设置放入JSP中 在jsp代码如下: 以上这篇JSP 导出Excel表格的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持呐喊教程。
本文向大家介绍vue中导出Excel表格的实现代码,包括了vue中导出Excel表格的实现代码的使用技巧和注意事项,需要的朋友参考一下 项目中我们可能会碰到导出Excel文件的需求,一般后台管理系统中居多,将table中展示的数据导出保存到本地。当然我们也可以通过一些处理来修改要导出的数据格式,具体需求具体对待。 1、首先我们需要安装3个依赖,file-saver、xlsx和script-load
本文向大家介绍Spring 实现excel及pdf导出表格示例,包括了Spring 实现excel及pdf导出表格示例的使用技巧和注意事项,需要的朋友参考一下 整理文档,搜刮出一个Spring 实现excel及pdf导出表格的代码,稍微整理精简一下做下分享。 excel 导出: pdf导出: 重写spring调用itext pdf 公共类 生成pdf 调用 以上就是本文的全部内容,希望对大家的学习