本文實例講述了Python實現導出數據生成excel報表的方法。分享給大家供大家參考,具體如下:
#_*_coding:utf-8_*_import MySQLdbimport xlwtfrom datetime import datetimedef 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 resultdef 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)更多關于Python相關內容感興趣的讀者可查看本站專題:《Python文件與目錄操作技巧匯總》、《Python文本文件操作技巧匯總》、《Python數據結構與算法教程》、《Python函數使用技巧總結》、《Python字符串操作技巧匯總》及《Python入門與進階經典教程》
希望本文所述對大家Python程序設計有所幫助。
新聞熱點
疑難解答