Как создать и скачать xlsx на клиенте?
Здравствуйте!
Подскажите пожалуйста, является ли данный код корректным, или в нем есть лишние операции: import React, { Fragment } from 'react'; import xlsx from 'node-xlsx'; import download from 'downloadjs'; function TableDownload({ data }) { return ( <Fragment> <button onClick={_ => { const qwerty = [[1, 2, 3], ['a', 'b', 'c']]; let buffer = xlsx.build([{ name: "mySheetName", data: qwerty }]).toString('base64'); download(atob(buffer), 'data.xlsx', { type: "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" }); }}>12345</button> </Fragment> ); } export default TableDownload; Все происходит на клиенте: создается файл, который затем скачивается без перезагрузки страницы. Все работает, но данные сначала конвертируются в строку "base64", а затем декодируются. Меня интересует, нет ли в коде лишних действий, и чтобы он "соответствовал традициям". Это компонент React, но я думаю, что проблема не связана с особенностями React, поэтому я разместил ее в общий расзел. Спасибо за внимание! |
Часовой пояс GMT +3, время: 23:00. |