1.利用pandas模塊
# encoding: utf-8 import time import pandas as pd import pymysql def getrel(sql): ''' 連接mysql數據庫,根據條件查詢出來我們所需要數據 :return: 根據條件從sql查詢出來的數據 ''' conn = pymysql.connect(host='localhost', user='root', password='123', db='db_test', charset='utf8mb4') cur = conn.cursor() cur.execute(sql) # 輸入要查詢的SQL rel = cur.fetchall() cur.close() conn.close() return rel def getxlsx(rel): ''' 把從數據庫中查詢出來的數據寫入excel文件 :param rel: :return: ''' file_name = time.strftime('%Y-%m-%d') + '.xlsx' dret = pd.DataFrame.from_records(list(rel)) # mysql查詢的結果為元組,需要轉換為列表 dret.to_excel(file_name, index=False, header=("平台貨號", "商品名稱", "售價")) # header 指定列名,index 默認為True,寫行名 if __name__ == '__main__': sql = 'select goods_commonid,goods_name,goods_price from mall_goods_common where store_id=110 and set_new_time>1560182400;' rel = getrel(sql) getxlsx(rel)
2.使用xlwt模塊
import pymysql import xlwt def get_sel_excel(sql): ''' 連接mysql並把查詢出來的數據寫入excel表格 :param sql: :return: ''' conn = pymysql.connect( host="localhost", port=3306, user="root", passwd="123", db="db_test", charset="utf8mb4" ) # 建立游標 cursor = conn.cursor() print("開始查詢表!") # 執行sql語句 cursor.execute(sql) # 獲取查詢到結果 res = cursor.fetchall() print(res) w_excel(res) def w_excel(res): ''' 把數據寫入excel表格中 :param res: :return: ''' book = xlwt.Workbook() # 新建一個excel sheet = book.add_sheet('vehicle_land') # 新建一個sheet頁 title = ['平台貨號', '商品名稱', '售價'] # 寫表頭 i = 0 for header in title: sheet.write(0, i, header) i += 1 # 寫入數據 for row in range(1, len(res)): for col in range(0, len(res[row])): sheet.write(row, col, res[row][col]) row += 1 col += 1 book.save('vehicle_land.xls') print("導出成功!") if __name__ == "__main__": sql = 'select goods_commonid,goods_name,goods_price from mall_goods_common where store_id=110 and set_new_time>1560182400;' get_sel_excel(sql)
3.pandas
import pandas as pd from sqlalchemy import create_engine # 初始化數據庫連接,使用pymysql模塊 # MySQL的用戶:root, 密碼:你的密碼, 端口:3306,數據庫:trustengine = create_engine("mysql+pymysql://root:password@localhost:3306/trust",encoding='utf-8') # 查詢語句,選出testexcel表中的所有數據 sql = """select goods_commonid,goods_name,goods_price from mall_goods_common where store_id=110 and set_new_time>1560182400;""" # read_sql_query的兩個參數: sql語句, 數據庫連接 df = pd.read_sql_query(sql,con=engine) # 輸出testexcel表的查詢結果 print(df) # 創建一個writer對象, 里面的參數是一個新的表格文件名 writer = pd.ExcelWriter('mydf.xlsx') # 利用to_excel()方法將不同的數據框及其對應的sheet名稱寫入該writer對象中 df.to_excel(writer,sheet_name='test1',index=False) # 數據寫出到excel文件中,最后保存 writer.save()
4.pandas
# coding=utf-8 import pandas as pd from pandas import DataFrame from sqlalchemy import create_engine import time # 開始時間 start = time.time() # 建立鏈接 engine = create_engine('mysql+pymysql://root:123@192.168.148.61:3306/ppx_mall_dev_db') # 查詢語句 sql = '''select goods_commonid,goods_name,goods_price from mall_goods_common where store_id=110 and set_new_time>1560182400;''' # 讀取mysql df = pd.read_sql_query(sql, engine) print("從mysql中讀取數據成功!開始將數據導入到excel表格中...") # 將讀取的數據格式化成DataFrame類型 test_data = DataFrame.from_records(df) # 將數據寫入excle中 test_data.to_excel("E:\\testdata.xlsx", index=False) print("導出成功!") # 程序結束時間 end = time.time() # 打印出程序的運行時間 print('Running time: {} Seconds'.format(end - start))
如需修改表格樣式,可參數:https://www.cnblogs.com/phoebechiang/p/10512337.html