【发布时间】:2016-05-17 23:51:31
【问题描述】:
Python:2.7.11
Django:1.9
熊猫:0.17.1
我应该如何创建一个可能很大的 xlsx 文件下载?我正在从字典列表中创建一个带有熊猫的 xlsx 文件,现在需要为用户提供下载它的可能性。该列表在一个变量中,不允许保存在本地(在服务器上)。
例子:
df = pandas.DataFrame(self.csvdict)
writer = pandas.ExcelWriter('pandas_simple.xlsx', engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
此示例将创建文件并将其保存在执行脚本所在的位置。我需要将其创建为 http 响应,以便用户获得下载提示。
我发现了一些关于为 xlsxwriter 执行此操作的帖子,但不是为 pandas 执行此操作的帖子。我也认为我应该为此使用“StreamingHttpResponse”而不是“HttpResponse”。
【问题讨论】:
-
如果文件非常大,您可以考虑使用 CSV 而不是 xlsx。我注意到 Pandas 使用 CSV 比使用 Excel 更快。至少在我的电脑上。