flask将数据库数据以excel文件导出
前端代码展示

  <span class="l_f">
        <a href="/allexcel" class="btn btn-danger">导出Excel</a>
       </span>

后台代码展示

@app.route('/allexcel')
def listExcel():
    conn, cur = pydb.conn_db()
    count = cur.execute('select * from newlist ')

    # 重置游标的位置
    cur.scroll(0, mode='absolute')
    # 搜取所有结果
    results = cur.fetchall()

    # 获取MYSQL里面的数据字段名称
    fields = cur.description
    # 实例化,有encoding和style_compression参数
    new = xlwt.Workbook(encoding='utf-8')
    # Workbook的方法,生成.xls文件
    sheet = new.add_sheet('新闻', cell_overwrite_ok=True)
    # 写上字段信息
    for field in range(0, len(fields)):
        sheet.write(0, field, fields[field][0])

        # 获取并写入数据段信息
    row = 1
    col = 0
    for row in range(1, len(results) + 1):
        for col in range(0, len(fields)):
            sheet.write(row, col, u'%s' % results[row - 1][col])

    sio = BytesIO()
    new.save(sio)  # 将数据存储为bytes
    sio.seek(0)
    response = make_response(sio.getvalue())
    response.headers['Content-type'] = 'application/vnd.ms-excel'  # 响应头告诉浏览器发送的文件类型为excel
    response.headers['Content-Disposition'] = 'attachment; filename=newlist.xlsx'  # 浏览器打开/保存的对话框,data.xlsx-设定的文件名
    return response

更多推荐