Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 24.11.2020, 23:56
Аватар для Kiten
Интересующийся
Отправить личное сообщение для Kiten Посмотреть профиль Найти все сообщения от Kiten
 
Регистрация: 18.05.2018
Сообщений: 16

Как создать и скачать 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, поэтому я разместил ее в общий расзел.
Спасибо за внимание!
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как создать галерею с помощью jQuery MariyaIgorevna jQuery 4 02.03.2016 01:14
Как создать объект со своими условиями if jtag Общие вопросы Javascript 4 21.02.2016 13:12
Как скачать файл через JS? Dimaz Events/DOM/Window 9 20.07.2014 22:20
drag-and-drop и position:fixed dotwatt Элементы интерфейса 5 05.12.2012 08:44
как создать елемент с вложеными елементами scuter Events/DOM/Window 11 14.05.2008 16:15