Categories
React Answers

How to fix Excel file download being corrupted in React and Axios?

Spread the love

To fix Excel file download being corrupted in React and Axios, we set the responseType option when we make our Axios request to 'arrayBuffer'.

For instance, we write

import React, { Component } from "react";
import { saveAs } from "file-saver";

//...

const C = () => {
  const exportIssues = async () => {
    const response = await axios.get("/issues/export", {
      responseType: "arraybuffer",
    });

    const blob = new Blob([response.data], {
      type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet",
    });
    saveAs(blob, "file.xlsx");
  };

  //...
};

to create the exportIssues function that calls axios.get with the URL for the Excel file.

We set the responseType to 'arraybuffer' to download the file as a binary file.

And then we transform the response.data response data to a Blob with the Blob constructor.

And then we call saveAs with the returned blob and the file name for the file.

By John Au-Yeung

Web developer specializing in React, Vue, and front end development.

Leave a Reply

Your email address will not be published. Required fields are marked *