如何使用python和Django高效导出大型Excel文件

2021-12-08 05:31:01 发布

您现在位置:Python中文网/ 问答频道 /正文

我有一个非常大的数据库(数十亿行),用户可以通过使用django构建的网站进行查询。我想为用户提供以excel格式下载查询结果的可能性。目前代码如下:

from excel_response import ExcelResponse

qs = data.objects_in(db)
qs_results = qs.filter([...]).order_by([...]])

json_data = [['col1', 'col2', 'col3']]
    
    for item in qs_results:
    
    json_data.append([
        escape(item.col1),
        escape(item.col2),
        escape(item.col3),
    ])

    return ExcelResponse(json_data, 'title')

但这真的很慢。输出有时可能有100000行(和20列),需要10分钟以上才能生成,并且经常超时

如何高效地输出具有大量行的excel文件