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

news2024/12/23 18:26:56
  • 我们获取到了数据库,当然我们希望能把这个数据库给保存到本地电脑上进行一些数据的处理,我们这一节就添加一个按钮把数据一次性导出
    请添加图片描述
  • 保存到桌面为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即可

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/630955.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

算法提高-图论-单源最短路的综合应用

单源最短路的综合应用 单源最短路的综合应用AcWing 1135. 新年好AcWing 340. 通信线路AcWing 342. 道路与航线AcWing 341. 最优贸易 单源最短路的综合应用 AcWing 1135. 新年好 多次dijkstra求每个点到其它点的最短距离&#xff0c; 此时相当于建好了一张图&#xff0c;每个点…

http客户端Fegin

1.RestTemplate方式调用存在的问题 代码可读性差&#xff0c;编程体验不统一 参数复杂URL难以维护 2.Feign的介绍 Feign是声明式的http客户端&#xff08;只需要将发http请求的信息写出即可&#xff09; 主要基于SpringMvc的注解来声明远程调用的信息&#xff1a; 步骤&…

(十二)K8S可视化工具Rancher部署项目应用实战

1.Rancher部署springboot私有镜像 连接私有镜像操作步骤 1.进入资源>>密文 2.进入镜像库凭证列表&#xff0c;点击添加凭证 3.输入凭证名称&#xff0c;选择自定义&#xff0c;填入自己的私有镜像仓库地址&#xff0c;这里使用的是阿里云&#xff0c;输入用户名和密码…

Zoho CRM SDK

前言 因早期公司的业务在Zoho CRM&#xff0c;现在孵化出自己的想法&#xff0c;想着能把一部分CRM的数据同步导出来&#xff0c;故研究Zoho CRM SDK的接入方法。虽说在文档上都有提及&#xff0c;但有部分细节不甚明了&#xff0c;也是一遍遍尝试出来的&#xff0c;所以分享出…

【Vue】六:路由(上)使用路由 多级路由

文章目录 1.多页面应用2. 单页面应用&#xff08;使用路由&#xff09;3. 多级路由 1.多页面应用 2. 单页面应用&#xff08;使用路由&#xff09; &#xff08;1&#xff09;安装vue-router插件 vue2 要安装 vue-router3 npm i vue-router3vu3 要安装 vue-router4 npm i vue…

字节薪酬体系被曝光,我真的酸了....

曾经的互联网是PC的时代&#xff0c;随着智能手机的普及&#xff0c;移动互联网开始飞速崛起。而字节跳动抓住了这波机遇&#xff0c;2015年&#xff0c;字节跳动全面加码短视频&#xff0c;从那以后&#xff0c;抖音成为了字节跳动用户、收入和估值的最大增长引擎。 自从字节…

【Java】数组详解

文章目录 一、数组的基本认识1.1 数组的概念1.2数组的创建与初始化1.3 数组的使用 二、数组的类型 — 引用类型2.1 JVM 内存分布2.2 什么是引用类型2.3 基本类型变量与引用类型变量的区别2.4 Java 中的 null 三、数组的应用3.1 保存数据3.2 函数参数3.3 函数返回值 一、数组的基…

STL——string和vector容器

初识STL **STL的基本概念****vector容器存放内置数据类型****在vector容器中存放自定义数据类型****vector容器嵌套vector容器****string容器——构造函数****string容器——赋值操作****string容器——字符串拼接****string容器——字符串的查找和替换****string容器——字符串…

Java阶段四Day01

Java阶段四Day01 文章目录 Java阶段四Day01Security框架通配符Vue脚手架 Vue-cli关于VUE关于VUE Cli创建Vue Cli工程解决端口被占用 Vue工程的工程结构[.idea]【重要】[node_modules]【重要】[public]favicon.icoindex.html [src][assets][compnents]【重要】[router][store]【…

Kafka详解(一)

第1章 Kafka概述 1.1 定义 1.2 消息队列 目前企业中比较常见的消息队列产品主要有Kafka、ActiveMQ、RabbitMQ、RocketMQ等。Message Queue ② 在大数据场景主要采用Kafka作为消息队列 ② 在JavaEE开发中主要采用ActiveMQ、RabbitMQ、RocketMQ Kafka存储数据&#xff0c;且保证…

虚函数+多态实现原理(一个冷门知识)

目录 多态实现 虚函数定义 先说原理 抛出问题 探究多态底层 冷门知识 多形态的大海 多态实现 完成类多态体现&#xff0c;多态两个条件: 虚函数重写 父类指针或者引用去调用虚函数。 虚函数定义 虚函数重写/覆盖条件 : 函数 三同 (函数名、参数、返回值) 不符合重写&…

【板栗糖GIS】——如何使用插件将微信读书笔记同步到notion

【板栗糖GIS】——如何使用插件将微信读书笔记同步到notion 注&#xff1a;本文创意以及插件开发皆是B站的【三此君】 视频链接如下&#xff1a; 全网唯一支持图文导出的微信读书插件&#xff0c;升级啦&#xff01;主打一个惊艳。_哔哩哔哩_bilibili &#xff0c;我只是记录…

阿里内部人手一份的Spring Cloud Alibaba手册

“微服务架构经验你有吗&#xff1f;” 前段时间一个朋友去面试&#xff0c;阿里面试官一句话问倒了他。实际上&#xff0c;不在 BAT 这样的大厂工作&#xff0c;是很难接触到支撑千亿级流量微服务架构项目的。但也正是这种难得&#xff0c;让各个大厂都抢着要这样的人才&…

linux(信号结尾)

目录&#xff1a; 1.可重入函数 2.volatile关键字 3.SIGCHLD信号 -------------------------------------------------------------------------------------------------------------------------------- 1.可重入函数----------用来描述一个函数的特点的 1.在单进程当中也存…

【数据结构】图的遍历、图的应用

以下是对王道数据结构图的部分选择题的纠错 图的遍历 对于一个非连通无向图G&#xff0c;采用DFS访问所有顶点&#xff0c;在DFSTraverse函数中调用DFS的次数正好等于连通分量个数 一次遍历必然会将一个连通图中的所有顶点都访问到&#xff0c;对于已被访问的顶点不在调用DFS&…

APP测试中ios和Android的区别是什么~

01、常识性区别 02、导航方式 iOS&#xff1a;Tab放在页面底部&#xff0c;不能通过滑动来切换&#xff0c;只能点击。也有放在上面的&#xff0c;也不能滑动&#xff0c;但有些Tab本身可以滑动&#xff0c;比如天猫的。还有新闻类的应用。 Android&#xff1a;一般放在页面…

数据库实验五 函数

任务描述 本关任务&#xff1a;对表达式取整 相关知识 四舍五入的函数 ROUND(X,D) 返回X&#xff0c;其值保留到小数点后D位&#xff0c;而第D位的保留方式为四舍五入。 若D的值为0,则对小数部分四舍五入。 若将D设为负值&#xff0c;保留X值小数点左边的D位 TRUNCATE(X,D)…

《剑指 Offer--LeetCode 学习计划》-- 字符串

剑指 Offer 05. 替换空格&#xff08;Easy&#xff09; 题目描述 请实现一个函数&#xff0c;把字符串 s 中的每个空格替换成"%20"。限制&#xff1a;0 < s 的长度 < 10000。 举例说明 示例 1&#xff1a; 输入&#xff1a;s “We are happy.”。输出&…

K210图像检测(1~8)数字卡片识别

前言 第一次使用该平台。想先找一个简单的识别&#xff0c;来走走流程。就想到了&#xff0c;前几年的送药小车的数字卡片识别。花了半天收集标记图片。在运行时要注意摄像头与数字卡片的高度。不过也有些不足&#xff0c;可能是收集某个数字的训练集的时候&#xff0c;拍摄高度…

文件智能归类,让文件分类变得简单易行

在数字化信息时代&#xff0c;我们经常需要处理各种类型的文件&#xff0c;如文档、图片、视频等&#xff0c;而这些文件可能存在于不同的文件夹、不同的磁盘之间&#xff0c;管理起来十分繁琐。为了解决这个问题&#xff0c;文件智能归类管理应运而生。这种文件管理方式采用智…