网页JS自动化脚本(九)创建一键导出数据库到桌面的功能按钮

该文章介绍了一个JavaScript脚本,用于从IndexedDB数据库中获取数据,将数据转换为JSON格式,并提供一个按钮实现一键导出到本地作为JSON文件。用户可以打开TXT文件查看数据,然后使用转换工具将JSON转换为EXCEL。
摘要由CSDN通过智能技术生成
  • 我们获取到了数据库,当然我们希望能把这个数据库给保存到本地电脑上进行一些数据的处理,我们这一节就添加一个按钮把数据一次性导出
    请添加图片描述
  • 保存到桌面为json格式
    请添加图片描述
  • 我们直接用TXT打开它如下图所示
    请添加图片描述
  • 然后再使用json转EXCEL的小工具规整之后如下图
    请添加图片描述
  • 好了我们下面上代码
// ==UserScript==
// @name        New script - baidu.com
// @namespace   Violentmonkey Scripts
// @match       https://www.baidu.com/
// @grant       none
// @version     1.0
// @author      -
// @description 2023/5/29 下午2:12:47
// ==/UserScript==

var time,reSou;//时间和热搜
var db;//数据库
var show="";//要显示的内容

window.onload=function(){
  var request = window.indexedDB.open('ShuJuKu',1);
  
  //更新数据库函数
  request.onupgradeneeded = function (event){
    db = event.target.result;
    var objectStore;
    if(!db.objectStoreNames.contains('BiaoGe')){
      objectStore = db.createObjectStore('BiaoGe',{keyPath:'TIME'});
      objectStore.createIndex('reSou','RS',{unique:false});
      alert('BiaoGe 首次创建成功');
    }
  }
  
  //打开数据库函数
  request.onsuccess = function (event) {
    db = request.result;
    show +='ShuJuKu  数据库打开成功\n';
    time=new Date().toLocaleString();
    reSou=document.querySelector("i.title-content-top-icon+span").innerText;
    db.transaction(['BiaoGe'],'readwrite').objectStore('BiaoGe').add({
      TIME:time,  RS: reSou
    });
  }
  
  //导出数据库函数
  function outToJson(){
    var request=indexedDB.open('ShuJuKu');  //打开数据库
    request.onsuccess=function(event){
      db=event.target.result;
      //获取全部表格数据
      var request=db.transaction(db.objectStoreNames,'readonly').objectStore('BiaoGe').getAll();//transaction是数据库事务处理函数,db.objectStoreNames,'readonly'对表格进行只读操作.objectStore('BiaoGe')获取到当前表格.getAll()获取全部数据
      request.onsuccess=function(event){
        //转传参为BLOB
        var data=event.target.result;//获取传参对象
        var dataString = JSON.stringify(data,null,"\t"); //转对象为字符串,第二参数可设置匹配函数也可省略,第三个参数为输出格式也可省略,若填数字为左缩进量,若填写"\t"为回车等
        var blob = new Blob([dataString], {type: 'application/json'});//创建二进制大对象BLOB 第一个参数要用中括号表示数组,第二参数设置字符串格式为application/json
        
        //创建超链接元素并关联二进制大对象BLOB并下载它
        var a = document.createElement('a');  //创建元素
        a.href = window.URL.createObjectURL(blob);  //创建基于BLOB的URL并绑定在元素上
        a.download = '导出文件名.json';  //设置默认下载文件名
        document.body.appendChild(a).click(); //添加链接元素并点击链接
        window.URL.revokeObjectURL(url); //回收链接
        a.remove(); //回收元素
      };
    };
  }
  
  //在右下角创建一键导出数据库到桌面的按钮
  var theButton=document.createElement("div");//创建div容器元素
  theButton.innerHTML='<button  type="button" style="position:fixed;right:0;bottom:0;z-index:1500">导出表格</button>';//在div中添加一个button按钮并将其置顶
  document.body.appendChild(theButton).onclick=function(){ //把div元素置入最后并为其绑定鼠标单击事件
    outToJson();  //绑定导出数据库函数
  }
}

  • 大概思路就是获取全部数据并打包创建统一资源定位符(URL),然后下载这个URL即可
  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值