flask实现从MySql中获取数据生成excel文件下载

flask实现从MySql中获取数据生成excel文件下载

python实例qingyu2022-10-18 1:18:46649A+A-

  flask实现从MySql中获取数据生成excel文件下载

  示例说明:

  本程序将mysql数据库中的数据生成excel文件,提供给web用户下载。在展示所有学生信息的页面/show_students 。 添加一个下载按钮,点击按钮可以下载包含全部学生信息的excel表格文件。

  完成效果动态截图如下:

1.gif

  在下载目录downloads中的截图:

download.png

  实现步骤说明:

  1.读取MySql

  2.生成excel文件

  生成excel文件下载数据保存在downloads文件目录中

  2.1使用时间函数生成文件名

  2.2使用xlwt模块生成excel

  3.发送下载

  具体flask代码:

#生成下载excel文件
def create_excel(data_dir,fanme):
    fpath = os.path.join(data_dir,fanme)
    workbook = xlwt.Workbook(encoding="utf-8")  #workbook是整个excel对象  utf-8编码支持中文
    worksheet = workbook.add_sheet("stu")
    #将内容写入excel
    for idx,name in enumerate(["学号","姓名","性别","年龄","邮箱"]):
        worksheet.write(0,idx,name) #表头:0是第一行,idx是列,name是名称
    sql = "select stuid,name,sex,age,email from student"
    datas = db.query_data(sql)
    for row,data in enumerate(datas):
        for col ,kv in  enumerate(data.items()):
            worksheet.write(row+1,col,kv[1])
    workbook.save(fpath) #保存


#下载url路由
@app.route("/download_stu_excel")
def download_stu():
    data_dir = os.path.join(app.root_path,"downloads") #存放excel下载文件的绝对路径
    now_time =datetime.datetime.now().strftime("%Y%m%d_%H%M%S") #等到当前时间并格式化
    fanme = f'stu_{now_time}.xls' #下载文件的名字

    #生成excel文件
    create_excel(data_dir,fanme)
    return send_from_directory(data_dir,fanme,as_attachment=True)
点击这里复制本文地址 欢迎来到大黄鸡源码分享网
qrcode

大黄鸡源码编程网 © All Rights Reserved.  
网站备案号:闽ICP备18012015号-4
Powered by Z-BlogPHP
联系我们| 关于我们| 广告联系| 网站管理