功能场景:
通过python代码实现:将数据库表的查询结果写入到excell中:
参考:http://openpyxl.readthedocs.io/en/default/worksheet_properties.html
http://www.cnblogs.com/guanfuchang/p/5970435.html
代码例子:
import MySQLdb import openpyxl //引入excell相关的库,如果没有安装,先安装 import sys from openpyxl import Workbook wb = Workbook() # 激活 worksheet ws = wb.active
# 定义第一行表头内容
ws['A1'] = "版本名称"
ws['B1'] = "版本提交时间"
ws['C1'] = "版本提交人"
def excell_insert(v1,v2,v3): # append方法进行添加行
ws.append([v1, v2, v3])
wb.save("D:\\Study\\myPython\\sample.xlsx") #调用excell_insert()方法:
cursor.execute(sql_1) #----这里省去了数据库的连接与sql部分,直接跳到执行。
results1 = cursor.fetchall() #匹配所有的查询结果
for row in results1: #循环,逐行写入excell excell_insert(row[0],row[1],row[2])
执行结果:
![](https://i-blog.csdnimg.cn/blog_migrate/49e682aff4fd16651ff6c53415f0a7f4.png)
注意点:
1、定义 excell_insert()时,以下两个初始化,是全局的定义(一次初始化即可),一定是在最外层,不是在方法里。
wb = Workbook() ws = wb.active
遇到的坑:
我在操作时,把这2个直接写到方法里,和插入操作一起执行,导致循环调用方法,却只插入一条记录。原因就是:每次都执行一次如下的2个操作,excell数据被初始化了。
2、可以在wb.save()中指定要保存的excell文件的路径。注意:路径格式(双斜杠): D:\\Study\\myPython\\sample.xlsx。
3、遇到的问题:
[Errno 13] Permission denied: 'D:\\Study\\myPython\\sample.xlsx'
原因:我打开了保存数据的excell文件,导致程序执行时,无法写入。
解决:关闭打开的excell,再执行即可。