删除使用 xlsxwriter 在 django 上创建的 excel 文件的 .xls 扩展名

Remove .xls extension on excel file created with xlsxwriter on django

我写了一个非常简单的 django 项目来测试 xlsxwriter。我可以打开 excel 文件,但是当我将文件命名为 'filename.xlsx' 时,文件下载为 'filename.xlsx.xls'。我该如何解决这个问题?

from django.shortcuts import render
from django.http import HttpResponse
from .excel import get_excel


def home_view(request):
    response = HttpResponse(content_type='application/vnd.ms-excel')
    response['Content-Disposition'] = 'attachment; filename=filename.xlsx'
    excel_data = get_excel()
    response.write(excel_data)
    return response

XSLX是OpenXML格式,所以mimetype不同,它使用:

application/vnd.openxmlformats-officedocument.spreadsheetml.sheet

因此您应该将其更改为:

def home_view(request):
    response = HttpResponse(
        <b>content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'</b>
    )
    response['Content-Disposition'] = 'attachment; filename=filename.xlsx'
    excel_data = get_excel()
    response.write(excel_data)
    return response