zoukankan      html  css  js  c++  java
  • flask下载excel

    flask 应用的基本结构:

    htmlweb.py
        -- static
    	-- templates
    

    bootstrap.min.css 放到 static 文件夹下,在 templates 文件夹下新建 index.html,里面写入如下信息:

    <html>
    <head>
        <title>APIParse</title>
        <link rel="stylesheet" type="text/css" href="{{url_for('static', filename='css/bootstrap.min.css')}}"/>
    </head>
    <body>
    TTYB
    </body>
    </html>
    

    htmlweb.py 中写入如下内容:

    from flask import Flask, render_template
    from io import BytesIO
    import xlsxwriter
    def create_workbook():
        output = BytesIO()
        # 创建Excel文件,不保存,直接输出
        workbook = xlsxwriter.Workbook(output, {'in_memory': True})
        # 设置Sheet的名字为download
        worksheet = workbook.add_worksheet('download')
        # 列首
        title = ["col1","col2","col3"]
        worksheet.write_row('A1', title)
        dictList = [{"a":"a1","b":"b1","c":"c1"},{"a":"a2","b":"b2","c":"c2"},{"a":"a3","b":"b3","c":"c3"}]
        for i in range(len(dictList)):
            row = [dictList[i]["a"],dictList[i]["b"],dictList[i]["c"]]
            worksheet.write_row('A' + str(i + 2), row)
        workbook.close()
        response = make_response(output.getvalue())
        output.close()
        return response
    
    
    app = Flask(__name__)
    
    @app.route('/', methods=['GET'])
    def index():
        return render_template("index.html")
    
    from flask import make_response
    @app.route('/download', methods=['GET'])
    def download():
    
        response = create_workbook()
        response.headers['Content-Type'] = "utf-8"
        response.headers["Cache-Control"] = "no-cache"
        response.headers["Content-Disposition"] = "attachment; filename=download.xlsx"
        return response
    
    if __name__ == "__main__":
        app.run(host='127.0.0.1', port=88, debug=True)
    

    运行在浏览器访问 127.0.0.1:88 可以看到新建的页面,在页面访问 127.0.0.1/download 可以下载生成的 excel :

  • 相关阅读:
    关于时间的字词
    Postgresql 存储过程调试 1
    Delphi 调试日子
    Delphi 调试日子
    TList,TObjectList 使用——资源释放
    Lazarus开发环境编译选项配置
    Delphi 递归搜索.SVN文件夹并“处理”
    Delphi 路径相关函数
    如何掌握程序语言(王垠)
    struct/class等内存字节对齐问题详解
  • 原文地址:https://www.cnblogs.com/TTyb/p/10615843.html
Copyright © 2011-2022 走看看