#_*_coding:utf-8_*_ import MySQLdb import xlwt from datetime import datetime def get_data(sql): # 創建數據庫連接. conn = MySQLdb.connect(host='127.0.0.1',user='root'\ ,passwd='123456',db='test',port=3306,charset='utf8') # 創建游標 cur = conn.cursor() # 執行查詢, cur.execute(sql) # 由於查詢語句僅會返回受影響的記錄條數並不會返回數據庫中實際的值,所以此處需要fetchall()來獲取所有內容。 result = cur.fetchall() #關閉游標 cur.close() #關閉數據庫連接 conn.close # 返給結果給函數調用者。 return result def write_data_to_excel(name,sql): # 將sql作為參數傳遞調用get_data並將結果賦值給result,(result為一個嵌套元組) result = get_data(sql) # 實例化一個Workbook()對象(即excel文件) wbk = xlwt.Workbook() # 新建一個名為Sheet1的excel sheet。此處的cell_overwrite_ok =True是為了能對同一個單元格重復操作。 sheet = wbk.add_sheet('Sheet1',cell_overwrite_ok=True) # 獲取當前日期,得到一個datetime對象如:(2016, 8, 9, 23, 12, 23, 424000) today = datetime.today() # 將獲取到的datetime對象僅取日期如:2016-8-9 today_date = datetime.date(today) # 遍歷result中的沒個元素。 for i in xrange(len(result)): #對result的每個子元素作遍歷, for j in xrange(len(result[i])): #將每一行的每個元素按行號i,列號j,寫入到excel中。 sheet.write(i,j,result[i][j]) # 以傳遞的name+當前日期作為excel名稱保存。 wbk.save(name+str(today_date)+'.xls') # 如果該文件不是被import,則執行下面代碼。 if __name__ == '__main__': #定義一個字典,key為對應的數據類型也用作excel命名,value為查詢語句 db_dict = {'test':'select * from student'} # 遍歷字典每個元素的key和value。 for k,v in db_dict.items(): # 用字典的每個key和value調用write_data_to_excel函數。 write_data_to_excel(k,v)