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]





  • 4
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值