
JS保存数据到本地文件(普通文件和excel文件)——普通文件使用blob实现(excel自己写格式)——代码详解
发布日期:2021-05-14 14:12:12
浏览次数:17
分类:精选文章
本文共 1871 字,大约阅读时间需要 6 分钟。
今天做项目,有一个页面是从后台请求数据,如果想下载,那么就手动点击下载数据,可是如果两次都从服务器请求数据,有点浪费服务器资源,所以干脆就直接把数据保存在本地浏览器,然后点击后保存到本地(前面是普通文件,如果想看excel请直接跳到后面)。
那么问题来了:怎么保存?
先贴代码:
function downLoadDataToLoc() { var saveDatas = getDataFromLocal("results"); // 上面是拿到我自己的数据,数据的格式是Json字符串 var blob = new Blob([JSON.stringify(saveDatas)], {type: 'application/json'}) // 创建一个blob的对象,把Json转化为字符串作为我们的值 if("msSaveOrOpenBlob" in navigator){ // 这个判断要不要都行,如果是IE浏览器,使用的是这个, window.navigator.msSaveOrOpenBlob(blob, "results.txt"); } else { // 不是IE浏览器使用的下面的 var url = window.URL.createObjectURL(blob) // 上面这个是创建一个blob的对象连链接, var link = document.createElement('a') // 创建一个链接元素,是属于 a 标签的链接元素,所以括号里才是a, link.href = url; // 把上面获得的blob的对象链接赋值给新创建的这个 a 链接 link.setAttribute('download', "results.txt") // 设置下载的属性(所以使用的是download),这个是a 标签的一个属性 // 后面的是文件名字,可以更改 link.click(); // 使用js点击这个链接 } }
代码效果如下图:
希望这篇文章帮助到了大家!!!!
改不完的需求,需求要求保存为excel格式,想学习怎么保存excel文件格式的同学,请看这里:
首先说明我的Json格式(如果Json格式不一样,大家可以根据我的代码自己改,很简单的,我会详细介绍这个代码):
// 下面是我的Json的数据格式,注意,如果格式不同,请修改我的代码// 可以是一个这样的字符串,但是需要大家手动格式化,使用这个函数// json = JSON.parse(json); 但是格式化之后一定要和我的格式一样var json ={ "--普通人--0--朱少强的大号--2019-10-20 09:29:14--Chuckie": ["72447305"], "--普通人--0--朱少强的大号 的第二条--2019-10-20 11:08:37--Chuckie": ["72447305"], "--学生--5--QQ号,新增的--2019-10-22 14:32:57 .09683--Chuckie": ["72447305"], "--好人--5--QQ号,新增的--2019-10-22 14:32:57.09683--Chuckie": ["72447305"], "--周二测试--0--2019年10月22测试--2019-10-22 15:38:46.37403--Chuckie":[ "72447305", "267525217", "123321", "123456", "12345" ], "--普通人--0--朱少强小号--2019-10-20 11:08:55--Chuckie": ["267525217"],}
下面是转换的代码(直接复制保存到html中,浏览器打开就能用,亲测可用):
正则表达式
下面这是结果的截图:
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月18日 02时47分03秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
JavaScript——使用iterator遍历迭代map,set集合元素
2019-03-09
IAR调试卡顿的解决办法
2019-03-10
应用程序无法启动,应用程序的并行配置不正确完美解决方法
2019-03-10
强大的文字处理器——Nisus Writer Pro
2019-03-10
如何轻松适应从Windows到MacOS的过渡!Mac新手入门指南
2019-03-10
fcpx插件:25个假日主题专业设计
2019-03-10
代码绘制五角形
2019-03-10
Course Schedule II
2019-03-10
线程总结
2019-03-10
<hdu - 1002> A + B Problem II
2019-03-10
Python识别璇玑图中诗的数量
2019-03-10
Django ORM操作
2019-03-10
剑指offer[32]——把数组排成最小的数
2019-03-10
谈谈关于springboot 添加依赖的那些事
2019-03-10
CF1475-D. Cleaning the Phone
2019-03-10
java基础-java与c#接口不同点
2019-03-10
Java并发工具篇
2019-03-10
京喜小程序体验评分优化实践
2019-03-10
C#中文转换成拼音
2019-03-10
C#批量上传图片
2019-03-10