XlsxWriter object save as http response to create download in Django

前端 未结 3 1887
佛祖请我去吃肉
佛祖请我去吃肉 2020-11-30 19:42

XlsxWriter object save as http response to create download in Django?

3条回答
  •  小蘑菇
    小蘑菇 (楼主)
    2020-11-30 20:21

    I think you're asking about how to create an excel file in memory using xlsxwriter and return it via HttpResponse. Here's an example:

    try:
        import cStringIO as StringIO
    except ImportError:
        import StringIO
    
    from django.http import HttpResponse
    
    from xlsxwriter.workbook import Workbook
    
    
    def your_view(request):
        # your view logic here
    
        # create a workbook in memory
        output = StringIO.StringIO()
    
        book = Workbook(output)
        sheet = book.add_worksheet('test')       
        sheet.write(0, 0, 'Hello, world!')
        book.close()
    
        # construct response
        output.seek(0)
        response = HttpResponse(output.read(), mimetype="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet")
        response['Content-Disposition'] = "attachment; filename=test.xlsx"
    
        return response
    

    Hope that helps.

提交回复
热议问题