Djangoを使用してダウンロードボタンをサポートするWebページにボタンを作成しています。すでにExcel(.xls)ファイルを生成して保存していますサーバー上で私はcsvライターを使用して、その場で行と列を書いてからレスポンスを返す必要はありませんが、私は単にディスク上のExcelファイルをレスポンスに渡してからレスポンスを返したいと思っています。 .pyはこのようなものです:あなたは、「NAME_OF_FILE.xls」を開こうとしているファイルがある:Djangoを使用してHttpResponseとしてExcelからディスクを戻す方法
def price_list_download(request):
today = date.today()
filename = 'test_price_list-%s.xls' % today.strftime("%Y-%m-%d")
response = HttpResponse(file("PATH_TO_EXCEL.xls"))
response['Content-Type'] ='application/vnd.ms-excel'
response['Content-Disposition'] = 'attachment; filename="' + filename + '"'
return response
それはダウンロードすることができます、私はダウンロードしたファイルを開こうとしたときに、しかし、それは言ってバナーをポップアップ表示しますファイル拡張子で指定されている形式とは異なる形式で指定します。 ...
.xlsファイルでapplication/vnd.ms-excelというコンテンツタイプを使用する必要があることを再度確認しました。ここで間違ったところが混乱しています。 [はい]をクリックしてこのダウンロードしたファイルを開こうとすると、行0の列0にランダムな文字列(Ïà±)のみが含まれ、残りのファイルは空白です。
お願いします。 おかげ
csvのようなjson互換の形式に変換してから返す必要があります - https://docs.djangoproject.com/ja/1.9/howto/outputting-csv/、http://djangotricks.blogspot.com/ 2013/12/how-to-export-data-as-excel.html、https://github.com/pyexcel/django-excel – dmitryro
リンク先を教えていただきありがとうございます。しかし、そのリンクには既知の制約があります。フォント、色、チャートはサポートされていません。しかし、ダウンロードした.xlsファイルにヘッダーとして1つの画像が残っている必要があります。他のすべてのヘッダーは太字とフォアカラーで強調表示されています。また、このpyexcel/django-excelプロジェクトではバージョン1.7.8以降のDjangoしかテストされていないことに気付きましたが、Djangoはバージョン1.5にとどまっているので、私の状況には役立ちません。他の方法はありますか?どうもありがとう! – FisherCoder
次の例は、https://assist-software.net/blog/how-export-excel-files-python-django-application – dmitryro