Python从MySQL中导出数据至excel

最近一段时间在做数据处理的相关工作,Tenserflow的更新,近期会逐步开始。
如果对机器学习算法感兴趣,请关注我的博客。

import openpyxl
import pymysql


class ExcelUtils4Others(object):

    def __init__(self, filename):
        self.wb = openpyxl.load_workbook(filename)
        self.wses = self.wb.sheetnames
        self.ws = self.wb.active

    def read_sheet(self, sheet_name=""):
        if sheet_name:
            ws = self.wb[sheet_name]
        else:
            ws = self.ws
        for row in ws.rows:
            for cell in row:
                print(cell.value)

    @classmethod
    def get_conn(self, db, user='root', pwd='', host='localhost', charset='utf8'):
        """
        :param db: 需要连接的数据库
        :param user:  数据库用户名
        :param host:  数据库主机地址(ip)
        :param pwd:   数据库密码
        :param charset: utf8
        :return:
        """
        try:
            conn = pymysql.connect(
                db=db,
                user=user,
                host=host,
                password=pwd,
                charset=charset
            )
        except:
            pass
        return conn

    def export_xls(self, db, sheet ='', paras=None):
        """ 从mysql数据库导出到excel """
        global sql
        if paras is None:
            paras = []
        conn = ExcelUtils4Others.get_conn()
        cursor = conn.cursor()
        for para in paras:
            sql = "SELECT `" + para + "`, "
        sql += "FROM " + db
        index = sql.rfind(',')
        sql = sql[:index] + sql[index+1:]
        print(sql)

        cursor.execute(sql)
        rows = cursor.fetchall()
        for(i, row) in enumerate(rows):
            self.ws['A{0}'.format(i+1)] = row[0]
            self.ws['B{0}'.format(i+1)] = row[0]
            self.ws['C{0}'.format(i+1)] = row[0]





猜你喜欢

转载自blog.csdn.net/zhao_jj_ok/article/details/87643461
今日推荐