4 回答

TA貢獻(xiàn)1856條經(jīng)驗(yàn) 獲得超17個(gè)贊
我認(rèn)為您可能會使它變得比需要的復(fù)雜得多。
以下對我來說很好用:
import pandas as pd
from django.http import HttpResponse
df = pd.DataFrame(data)
response = HttpResponse(content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = 'attachment; filename="filename.xlsx"'
df.to_excel(response)
return response

TA貢獻(xiàn)1833條經(jīng)驗(yàn) 獲得超4個(gè)贊
解決方案
結(jié)果我不得不刪除一些東西,所以代碼現(xiàn)在看起來像這樣并且工作正常:
collection = [{"title": "something", "price": 34, "quantity": 23}, {..}]
output = BytesIO()
df = pd.DataFrame(collection, columns=['title', 'price', 'quantity'])
writer = pd.ExcelWriter(output, engine='xlsxwriter')
df.to_excel(writer, sheet_name='Sheet1')
writer.save()
output.seek(0)
# workbook = output.getvalue()
response = StreamingHttpResponse(output, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = f'attachment; filename={output_name}.xlsx'
return response

TA貢獻(xiàn)1820條經(jīng)驗(yàn) 獲得超9個(gè)贊
AI 建議:):
import pandas as pd
from django.http import HttpResponse
df = pd.DataFrame(data)
response = HttpResponse(content_type='application/ms-excel')
response['Content-Disposition'] = 'attachment; filename="my_data.xlsx"'
df.to_excel(response, index=False)
return response

TA貢獻(xiàn)1865條經(jīng)驗(yàn) 獲得超7個(gè)贊
在 Excel 中打開時(shí)可能是數(shù)據(jù)類型問題,請嘗試將數(shù)據(jù)轉(zhuǎn)換為字符串,然后創(chuàng)建 excel 并嘗試。
另一個(gè)想法是使用一組樣本記錄創(chuàng)建文件,而不是整個(gè)框架來驗(yàn)證它是否是數(shù)據(jù)問題。數(shù)據(jù)集中的 Nan's 也可能存在問題。檢查您是否需要忽略/轉(zhuǎn)換/替換它。
添加回答
舉報(bào)