2016-04-20 2 views
1

私のメモリにいくつかのExcelファイルを書き出したいのですが、ここに私のコードがあります。Django:Excelファイルをエクスポートする

wrapper = open('/home/filename.xlsx') 
response = HttpResponse(wrapper,content_type='application/force-download') 
response['Content-Disposition'] = 'attachment ; filename=%s' % smart_str('filename.xlsx') 
response['X-Sendfile'] = smart_str('/home/filename.xlsx') 
     return response 

は、私は、Python 2.7を使用する場合は問題ありませんが、私は、Python 3.5を使用する場合は、エラー私は、エラーが原因でそれらの差であると思い

'utf-8' codec can't decode byte 0x9c in position 10:invalid start byte 

(オープン機能)

を発生する何オープンに適切な方法は、私の記憶にファイルをExcelとエクスポートですか?

答えて

1

デフォルトでは、Python 3.xファイルはテキストモードで開かれています。

通常、ファイルは、手段は、あなたが読んで、ファイルからおよびに文字列を書き込むことを、テキストモードで開かれます: Python 3 documentation(強調鉱山)から

wrapper = open('/home/filename.xlsx', 'rb') 

:へのあなたの最初の行を変更特定のエンコーディングでエンコードされます。エンコーディングが指定されていない場合、デフォルトはプラットフォームに依存します(open()を参照)。モードに追加された 'b'はファイルをバイナリモードで開きます。データはバイトオブジェクトの形式で読み書きされます。 このモードは、テキストを含まないすべてのファイルに使用する必要があります。

関連する問題