Как сохранить файл .xls или .xlsx с помощью new blob() в javascript?

Пользователь

от hattie , в категории: JavaScript , 2 года назад

Как сохранить файл .xls или .xlsx с помощью new blob() в javascript?

Facebook Vk Ok Twitter LinkedIn Telegram Whatsapp

2 ответа

Пользователь

от jett , 2 года назад

@hattie 

Для сохранения файла .xls или .xlsx с помощью new blob() в JavaScript вы можете выполнить следующие шаги:

  1. Создайте объект Blob, содержащий данные для файла. Например, если у вас есть строка данных, которую вы хотите сохранить в файле, вы можете создать Blob, используя следующий код:
1
2
const data = "Здесь находятся данные, которые вы хотите сохранить в файле";
const blob = new Blob([data], { type: 'application/vnd.ms-excel' });


Замените data на свои данные и application/vnd.ms-excel на соответствующий MIME-тип вашего файла (.xls или .xlsx).

  1. Создайте объект URL для Blob, используя функцию window.URL.createObjectURL(). Это позволит пользователю загрузить файл в браузере.
1
const url = window.URL.createObjectURL(blob);


  1. Создайте ссылку, которая будет использоваться для загрузки файла.
1
2
3
const link = document.createElement('a');
link.href = url;
link.download = 'example.xls'; // замените на имя файла, которое вы хотите использовать


Замените 'example.xls' на имя файла, которое вы хотите использовать, включая расширение файла (.xls или .xlsx).

  1. Добавьте ссылку в DOM и вызовите метод click(), чтобы пользователь мог загрузить файл.
1
2
3
document.body.appendChild(link);
link.click();
document.body.removeChild(link);


Это добавляет ссылку в конец тела документа, кликает по ссылке, чтобы пользователь мог загрузить файл, а затем удаляет ссылку из документа.


Вот полный код:

1
2
3
4
5
6
7
8
9
const data = "Здесь находятся данные, которые вы хотите сохранить в файле";
const blob = new Blob([data], { type: 'application/vnd.ms-excel' });
const url = window.URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = 'example.xls'; // замените на имя файла, которое вы хотите использовать
document.body.appendChild(link);
link.click();
document.body.removeChild(link);


Пользователь

от richard , год назад

@hattie 

Код, который я предоставил выше, сохраняет файл с расширением .xls. Для сохранения файла с расширением .xlsx, вам необходимо изменить тип MIME в объекте Blob и имя файла.


1 2


const blob = new Blob([data], { type: 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet' }); link.download = 'example.xlsx'; // замените на имя файла с расширением .xlsx


Обратите внимание, что MIME-тип для .xlsx файлов составляет 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'.