Файл Excel поврежден при загрузке из бэкенда Django через Axios в Vue.js

Я пытаюсь загрузить файл Excel из бэкенда Django во фронтенд, используя Axios и FileSaver.js (также пробовал без этого). Файл успешно генерируется на бэкенде, но когда я загружаю его через фронтенд, файл становится поврежденным и не может быть открыт Excel.

Я использую pandas для создания файла Excel в памяти, а затем возвращаю его в качестве ответа.

Код бэкенда -

buffer = BytesIO()
with pd.ExcelWriter(buffer, engine='xlsxwriter') as writer:
    for item in data_list:
        attributes = item['attributes']
        attributes['ID'] = item['id']
        df = pd.DataFrame([attributes])
        
        sheet_name = f"Sheet_{item['id']}"
        df.to_excel(writer, sheet_name=sheet_name, index=False)

buffer.seek(0)

response = HttpResponse(buffer, content_type='application/vnd.openxmlformats-officedocument.spreadsheetml.sheet')
response['Content-Disposition'] = 'attachment; filename="data_export.xlsx"'

return response

Код фронтенда -

async function downloadFile() {
  try {
    const response = await axios.get('/api/export-excel', {
      responseType: 'blob',
    });

    saveAs(new Blob([response.data]), 'data_export.xlsx');
  } catch (error) {
    console.error('Error downloading file:', error);
  }
}

Я знаю, что здесь уже задавались подобные вопросы, и я уже пробовал эти вещи (использование arraybuffer, тип - ms-excel, также пробовал использовать openpyxl), но, похоже, ничего не получилось.

Что может вызвать повреждение файла при загрузке через фронтенд? Как убедиться, что файл загружается правильно и открывается в Excel без повреждений?

Любой совет или предложение будут высоко оценены!

Вернуться на верх