基于python实现post请求导出excel

后端实现

@app.route('/download_report_list', methods=['POST'])
def download_report_list():
    from flask import jsonify, send_file  
    from openpyxl import Workbook  
    import io
    report_list = []
    try:
        report_list = mysql().get_data("select * from csdn_table")
    except Exception as e:
        return e
    
    wb = Workbook()  
    ws = wb.active  
          
    # 设置列标题
    header = list(report_list[0].keys())
    ws.append(header)  
      
    # 遍历数据并填充到工作表中  
    for row_data in report_list:
        ws.append(list(row_data.values()))
    
    # 将Workbook写入一个BytesIO对象  
    output = io.BytesIO() 
    wb.save(output)  
          
    # 将文件指针重新置于开头  
    output.seek(0)  

    # 返回文件内容,设置正确的MIME类型和文件名  
    return send_file(output, as_attachment=True, attachment_filename='csdn.xlsx', mimetype='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
    

前端实现

let download_data = window.report_list.join()

// 模拟表单提交事件
let form = document.createElement('form');
form.method = 'POST';
form.action = `/csdn_api/download_report_list`;
let input = document.createElement('input');
input.type = 'text';
input.name = 'report_guids';
input.value = download_data;
form.appendChild(input);
document.body.appendChild(form);
form.submit();
setTimeout(() => {
    document.body.removeChild(form);
}, 500);

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值