python3 将mysql数据导入excel表中

图片发自App

最近自学了python,希望能够对自己的工作有所帮助,重点学习了python链接数据库。啥也不说了、直接上代码,希望高手多指教




# -*- coding:UTF-8 -*-

import xlsxwriter

import pymysql  # Python3的mysql模块

import time  # excel写入

''' 此方法 是传进来sql 语句,然后执行 并返回结果集'''

def get_data(sql):

    db=pymysql.connect(host='******',user='***',passwd='mima',db='dbname',port=***,charset='utf8')

    # 使用 cursor() 方法创建一个游标对象 cursor

    cursor = db.cursor()

    # 使用 execute()  方法执行 SQL 查询

    #  cursor.execute("select date_format(create_time, '%Y-%m-%d')as dd,count(*) from USER where date_format(create_time, '%Y-%m')='2018-02'group by dd  ")

    cursor.execute(sql)

    # 使用 fetchone() 方法获取单条数据.

    results = cursor.fetchall()

    print(results)

    # 关闭数据库连接

    db.close()

    # 返给结果给函数调用者。

    return results

def write_data_to_excel():

    sql="select date_format(create_time, '%Y-%m-%d')as dd,count(*) from user where date_format(create_time, '%Y-%m')='2018-02'group by dd "

    #获取sql 语句的结果集

    results = get_data(sql)

    #新建一个xlsx文档 此文档是空的 没有任何内容包括sheet页

    workbook = xlsxwriter.Workbook('file2.xlsx')

    #在xlsx 中新建一个sheet 页

    worksheet = workbook.add_worksheet()  # ()中可以加入名字

    # 遍历result中的没个元素 将数据写入新建的sheet页中。

    #第一层循环 是循环的所有结果集 (('2017-11-15', 8), ('2017-11-21', 8), ('2017-11-22', 1), ('2017-11-23', 5), ('2017-11-24', 2))

    for i in range(len(results)): # 这句一共执行了几次? 元组的长度

        #第二层循环,是循环的 单个结果中的 每个属性 如上述结果集中第二个  ('2017-11-21', 8) 取出每个属性 '2017-11-21'  和 8

        for j in range(len(results[i])):

            # 将属性写入对应的表格的做表中 如 0-0 写入的是 2017-11-21  0-1 写入的是 8

            worksheet.write(i, j, results[i][j])

    #写入完毕后关闭此xls 文件

    workbook.close()

#调用上面的方法 将数据写入

write_data_to_excel()

你可能感兴趣的:(python3 将mysql数据导入excel表中)