環境
React:16.8.5
やり方
lambdaで作成したExcelファイルをbase64に変換しレスポンスとして返します。
それをReactでBlobに変換してダウンロードしました
const data = 'base64のデータ';
const binary = Buffer.from(data, 'base64')
const decoded = new Blob([Uint8Array.from(binary)], {
type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"});
const url = window.URL.createObjectURL(decoded);
const a = document.createElement("a");
a.href = url;
a.download = "sample.xlsx";
a.click();
window.URL.revokeObjectURL(url);
base64から直接Blobに変換するのではなく、まずはUint8Arrayに変換します。
→そしてUint8ArrayをBlobに変換し、aタグを使ってダウンロードします。
参考にしていただければ幸いです。