如何使用python和Django高效导出大型Excel文件
我有一个非常大的数据库(数十亿行),用户可以通过使用django构建的网站进行查询。我想为用户提供以excel格式下载查询结果的可能性。目前代码如下:如何使用python和Django高效导出大型Excel文件,python,django,excel,Python,Django,Excel,我有一个非常大的数据库(数十亿行),用户可以通过使用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
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文件?您可以按照此链接使用芹菜任务执行此过程 或者您也可以按照此链接在django中使用async视图来执行此操作
如果您只需要从每个对象使用
,就可以使用col1
、col2
和col3
,那么这两种方法在这些情况下都非常有效。值列表()将大大加快速度。