1. 程式人生 > >Python --Excell寫入數據

Python --Excell寫入數據

bsp mage 引入 row 如果 匹配 ins -1 cursor

功能場景:

通過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])

執行結果:
技術分享

註意點:

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,再執行即可。

技術分享

Python --Excell寫入數據