当我们的表格数据 或者什么数据 想下载到本地的话 可以参考这个demo 具体场景具体加
先上代码
function saveDataToFile(data) {
// 遍历数组,只保留需要的键值对
const filteredData = data.map(obj => {
return { key1: obj.key1, key2: obj.key2 };
});
const jsonData = JSON.stringify(data);
const blob = new Blob([jsonData], { type: 'application/json' });
const url = URL.createObjectURL(blob);
const link = document.createElement('a');
link.href = url;
link.download = 'test.txt';
link.click();
// 释放URL对象
URL.revokeObjectURL(url);
}
在上述代码中,我们首先将数据转换为 JSON 字符串,然后创建一个 Blob 对象,并指定 MIME 类型为 application/json
。接下来,通过创建一个下载链接 <a>
元素,设置链接的 href 为 Blob 对象的 URL,设置 download 属性为文件名(这里是 test.txt
),最后调用 click()
方法触发下载。
你可以在需要保存数据的地方调用 saveDataToFile(data)
函数,其中 data
是你要保存的数据对象。
请注意,这种方法只能在支持 File API 的现代浏览器中使用,不适用于老旧的浏览器。另外,由于涉及到文件系统的操作,浏览器可能会有安全限制,例如对于非用户交互触发的下载操作,浏览器可能会拦截。因此,最好在用户主动操作的情况下执行文件保存操作,例如在点击按钮时保存数据到本地文件。
在浏览器环境中,new Blob()
是标准的 JavaScript API,不需要额外下载或引入任何包。它是浏览器原生支持的功能。
Blob
构造函数用于创建一个新的 Blob 对象,它接受两个参数:
- 数据数组,例如
[jsonData]
,其中jsonData
是你要保存的数据。 - 一个配置对象,用于指定 Blob 的 MIME 类型,例如
{ type: 'application/json' }
,表示创建的 Blob 对象是一个 JSON 文件。
这样就可以通过 const blob = new Blob([jsonData], { type: 'application/json' });
创建一个 Blob 对象,用于保存数据。
请确保你的代码运行在支持 Blob API 的现代浏览器环境中,例如最新版本的 Chrome、Firefox、Safari 或 Edge 浏览器。