export const creactFile = (data, fileName = '文件.xls') => {
if (window.navigator.msSaveBlob) {
try {
const blobObject = new Blob([data]);
window.navigator.msSaveBlob(blobObject, fileName);
} catch (e) {
console.log(e);
} else {
const blob = new Blob([data], { type: 'application/octet-stream' });
const URL = window.URL || window.webkitURL;
const streamUrl = URL.createObjectURL(blob); //创建下载的链接】
const a = document.createElement('a');
a.href = streamUrl;
a.download = fileName;
document.body.appendChild(a);
a.click();
a.remove();
页面点击导出后请求后端接口返回文件流
axios.post(`******************`,
param, {
contentType: 'application/vnd.ms-excel;charset=UTF-8',
responseType: 'blob'
}).then((res) => {
creactFile(res, '*****.xls');
}, (err) => {
message.error(err.message);
Blob
对象表示一个不可变、原始数据的类
文件
对象。它的数据可以按文本或二进制的格式进行读取,也可以转换成ReadableStream来用于数据操作。
Blob
表示的不一定是
JavaScript
原生格式的数据。File接口基于
Blob
,继承了
blob
的功能并将其扩展使其支持用户系统上的
文件
。
详细了解请移步:
Blob
- Web API 接口参考 | MDN
1、基于vue,以pos...
If you're new to Angular, you might be wondering how to retrieve a filename from an API response. 如果您不熟悉Angular,可能想知道如何从API响应中检索
文件名
。
Imagine you have a method that makes a POST request to a remote AP...
在
JavaScript
中
导出
Excel
文件
,可以使用第三方库或者使用浏览器的内置功能来实现。
一种常见的方法是使用第三方库,例如 Sheet
JS
。使用该库可以轻松地将
JavaScript
数据
导出
为
Excel
文件
。下面是一个示例:
```
javascript
import * as XLSX from 'xlsx';
// 定义要
导出
的数据
const data = [
['姓名', '年龄', '性别'],
['张三', 20, '男'],
['李四', 25, '女'],
['王五', 30, '男']
// 将数据转换为二进制数据
const ws = XLSX.utils.aoa_to_sheet(data);
const wb = XLSX.utils.book_new();
XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
const data
Blob
= new
Blob
([XLSX.write(wb, { type: 'binary' })], { type: 'application/octet-stream' });
//
导出
Excel
文件
const fileName = 'my-file.xlsx';
const a = document.createElement('a');
a.href = URL.createObjectURL(data
Blob
);
a.download = fileName;
document.body.appendChild(a);
a.click();
document.body.removeChild(a);
另一种方法是使用浏览器的内置功能,例如使用 HTML 表格的 `table` 元素。这种方法更简单,但不如第三方库功能强大。下面是一个示例:
```
javascript
// 定义要
导出
的数据
const data = [
['姓名', '年龄', '性别'],
['张三', 20, '男'],
['李四', 25, '女'],
['王五', 30, '男']
// 创建 HTML 表格
const table = document.createElement('table');
for (const row of data) {
const tr = document.createElement('tr');
for (const cell of row) {
const td = document.createElement('td');
td.innerHTML = cell