首页 > 其他分享 >Quart自定义文件导出名

Quart自定义文件导出名

时间:2024-07-31 18:07:52浏览次数:15  
标签:__ 自定义 导出 send filename Quart num file data

直接上代码

from quart import Quart, send_file
import io
import xlwt

app = Quart(__name__)


@app.route('/download-excel',methods=["POST"])
async def download_excel():
    # 创建一个简单的 Excel 文件
    workbook = xlwt.Workbook()
    sheet = workbook.add_sheet('Sheet1')

    # 写入一些示例数据
    columns = ['Name', 'Age']
    data = [
        ['John', 28],
        ['Jane', 24],
        ['Doe', 22]
    ]

    for col_num, header in enumerate(columns):
        sheet.write(0, col_num, header)

    for row_num, row_data in enumerate(data, start=1):
        for col_num, cell_data in enumerate(row_data):
            sheet.write(row_num, col_num, cell_data)

    # 将工作簿保存到一个 BytesIO 对象
    output = io.BytesIO()
    workbook.save(output)
    output.seek(0)

    # 使用 send_file 传递文件并指定文件名
    return await send_file(
        output,
        as_attachment=True,
        attachment_filename ='ASADSDA.xlsx',
        mimetype='application/vnd.ms-excel'
    )


if __name__ == '__main__':
    app.run(debug=True)

如果还是不行尝试加上请求头:

data = await send_file(...)
data.headers["Access-Control-Expose-Headers"] = 'Content-Disposition'

如果是乱码你可以将文件名进行转码或者加上以下请求头

from urllib.parse import quote
filename = u'育种数据导出' + date_today + '.xlsx'
encoded_filename = urllib.parse.quote(filename.encode('utf-8'))
file = await send_file(output, mimetype='application/vnd.ms-excel', as_attachment=True,
                               attachment_filename=encoded_filename)
file.headers["Content-Disposition"] = f"attachment; filename*=UTF-8''{encoded_filename}"

  

 

标签:__,自定义,导出,send,filename,Quart,num,file,data
From: https://www.cnblogs.com/hero799/p/18335154

相关文章

  • 自定义Obsidian输入栏宽度
    自定义Obsidian输入栏宽度以Obsidian的主题Minimal为案例,进行输入栏宽度的调整;若是没有此主题Minimal,通过设置找到外观后,主题那栏点击管理输入Minimal进行下载(这个主题还是挺不错的);点击左下角设置,选择外观,点击文件夹,找到对应的.css文件文件夹的......
  • springboot自学(5)自定义starter
      测试文件可以删除掉了,配置文件改一下后缀修改pom业务代码开发添加自动配置类,并且加上spring.factories到此为止就初步完成了,install到本地的maven仓库然后在使用的项目里加上依赖就行了导入项目,并调用定时任务报表开发先做个表格的打印方法表格......
  • 二维数组下载为excel(导出)
    /*导出*/ consts2ab=function(s){ constbuf=newArrayBuffer(s.length); constview=newUint8Array(buf); for(leti=0;i<s.length;i++)view[i]=s.charCodeAt(i)&0xFF; returnbuf; } constexportClick=asyncfunction(){ //多个组数据......
  • 在Python中将简单的字典导出到Excel文件中
    我是Python新手。我有一个简单的字典,其键和值如下dict1={"numberofstoragearrays":45,"numberofports":2390,......}我需要将它们放入Excel表中,如下numberofstoragearrays45numberofports2390我有一个非常大的字典。importpandasasp......
  • 自定义的基于线程的监控如何影响 celery 任务的启动时间?
    我使用Flask和celery来构建后端api。为了防止任务运行时间过长,我实现了一个自定义的基于线程的监视类来监视任务,并在任务运行时间过长时停止它们。这是我的实现。importosimportsysfromflaskimportFlaskfromceleryimportCelery,Taskimportloggingf......
  • mapbox聚合使用自定义图标
    1mapboxgl.accessToken='YOUR_MAPBOX_ACCESS_TOKEN';2varmap=newmapboxgl.Map({3container:'map',4style:'mapbox://styles/mapbox/streets-v11',5center:[-74.5,40],6zoom:9.57});89map.on(�......
  • 世界上速度最快的超级计算机推导出超级BC8钻石配方
    BC8超级钻石比任何已知材料都要坚硬,但它们很可能只存在于巨型系外行星的内核中。现在,世界上最强的超级计算机"前沿"已经揭开了它们形成的秘密,这一发现可能会导致在地球上生产它们。钻石不仅是夺人眼球的珠宝,而且在世界各地被广泛应用。作为世界上最坚硬的物质–得益于其......
  • matlab将.m文件导出dll
    根据项目需要,需要这边引用matlab的函数进行数据处理,首先考虑是将matlab代码直接导出成c/c++代码,但是由于matlab代码中引用了其他的matlab库函数,无法直接导成c/c++代码,退而求其次,转而考虑导出为dll文件1、需要安装matlab和vs,目前分别是2016版本和2022版本导出步骤可参考https://w......
  • yolov8 训练自定义数据集(windows+CPU)
    本文实现使用yolov8训练自己的火灾数据集。1.数据的获取。本文所使用的火灾数据集是在Roboflow上下载的。Roboflow是一款专为YOLOv8设计的自动化训练数据工具,它为YOLOv8提供了一种更便捷、更快速的方式来准备训练数据。它能够自动从开发者提供的原始图像数据中提取所需的信息,并......
  • springboot项目使用自定义starter
    首先是自定义的starter部分pom文件<?xmlversion="1.0"encoding="UTF-8"?><projectxmlns="http://maven.apache.org/POM/4.0.0"xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"xsi:schemaLocation=&......