python3实现查询mysql生成excel并下载

本文介绍如何使用Python3连接到MySQL数据库,执行查询,并将结果导出为Excel文件供用户下载。首先,我们需要安装必要的库,如pymysql和pandas。接着,建立数据库连接,执行SQL查询,将查询结果转换为DataFrame,然后利用pandas的to_excel方法生成Excel文件。最后,通过HTTP响应提供下载链接,让用户能够方便地获取数据。
部署运行你感兴趣的模型镜像
#******************************接口调用部分*************************************
def post(self, *args):
  sql = "select * from yongyao_lv"
  head = ["ICD10","名称","年份","地区","产品名","新增人数","现有人数","增长率"]
  line = ["code_category","category_name","y","addr","n_item_name","num_yongyao","num_huanbin","yongyaobi"]
  output = export_excel(sql,head,line)
  nowtime = datetime.datetime.now().strftime('%Y%m%d%H%M%S')
  self.set_header("Content-Type", "application/octet-stream")
  self.set_header("Content-Disposition", "attachment; filename=yongyaolv_%s.xls" % nowtime)
  self.write(output.getvalue())
#**********************表格处理部分**************************


def export_excel(sql,head,line):
    list_obj = connect_datebase(sql)
    """导出excel表"""
    if list_obj:
        # 创建工作簿
        ws = xlwt.Workbook(encoding='utf-8')
        w = ws.add_sheet('sheet1')
        for h in range(0, len(head)):
            w.write(0, h, str(head[h]))
        excel_row = 1
        for obj in list_obj:
            for j in range(0, len(line)):
                line_name=line[j]
                w.write(excel_row, j, obj.get(line_name))
            excel_row += 1
        output = BytesIO()
        ws.save(output)
        output.seek(0)
        return output

#***********************数据库查询部分*************************

def connect_datebase(sql):
    try:
        conn = mysqldb.connect(host="127.0.0.1", port=6379, user="root",
                               passwd="123456",
                               db="data", charset="utf8")
        cursor = conn.cursor()
        n = cursor.execute(sql)
        rows = []
        col = []
        cols = cursor.description
        for c in cols:
            col.append(c[0])
        for em in cursor.fetchall():
            r = {}
            for i in range(0, len(col)):
                key = str(col[i])
                value = str(em[i])
                r[key] = value
            # row.append(r)
            rows.append(r)
    except Exception as e:
        print(e)
    return rows

 

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值