vue2 若依项目,使用plotly.js-dist图表库,将数据图表一键导出为图片

此代码适用的场景是一个页面有多个数据图表。

首先需要拿到你生成数据图表的数据, 然后赋值给一个数组,数组需要在data定义,还需要去重。

               // 检查是否有相同的parameter值const hasDuplicate = this.toImageArr.some(iiem => iiem.parameter === element.parameter);// 如果没有重复,则添加到数组if (!hasDuplicate) {this.toImageArr.push(element);}

 然后点击导出按钮的代码如下:

   // 导出图表为图片exportExcel() {const uniqueImageNames = new Set(this.toImageArr);for (const image of this.toImageArr) {const imageName = image.parameter;if (uniqueImageNames.has(imageName)) {continue;}Plotly.toImage(`id${imageName}`, { format: 'png', width: 1600, height: 1000 }).then(function (url) {// 创建一个虚拟的下载链接const link = document.createElement('a');link.href = url;link.download = `${imageName}.png`; //imageName图片名称,根据自己需求修改link.style.display = 'none';// 将下载链接添加到页面中并触发点击事件document.body.appendChild(link);link.click();// 清理下载链接document.body.removeChild(link);uniqueImageNames.add(imageName);}).catch(function (error) {console.log('Error exporting chart:', error);});}}

单个下载可以点击数据图表的照相机,可以实现单个下载。

如果数据图表做了分页和懒加载,无法获取第二页数据图表的dom, 使用以下代码:

exportExcel() {const uniqueImageNames = new Set();const promises = this.toImageArr.map((image) => {const imageName = image.parameter;if (uniqueImageNames.has(imageName)) {return Promise.resolve();}return Plotly.toImage(`id${imageName}`, { format: 'png', width: 1600, height: 1000 }).then(function (url) {const link = document.createElement('a');link.href = url;link.download = `${imageName}.png`;link.style.display = 'none';document.body.appendChild(link);link.click();document.body.removeChild(link);uniqueImageNames.add(imageName);}).catch(function (error) {console.log('Error exporting chart:', error);});});Promise.all(promises).then(() => {console.log('All charts exported successfully');}).catch((error) => {console.log('Error exporting charts:', error);});
}

好用的话点赞支持一下,谢谢

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

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

C++万字自学笔记

[TOC] 一、 C基础 C的IDE有CLion、Visual Studio、DEV C、eclipse等等&#xff0c;这里使用CLion进行学习。 0. C初识 0.1 第一个C程序 编写一个C程序总共分为4个步骤 创建项目创建文件编写代码运行程序 #include <iostream>int main() {using namespace std;cout…

【SpringBoot_Error】关于SpringBoot项目中经常出现yml/xml识别不到的问题

Problems 关于关于SpringBoot项目中经常出现yml/xml识别不到的问题 Solution 在pom.xml文件的<build></build>标签中添加如下代码&#xff1a; > <build><resources><!--检测mapperxml&#xff0c;本项目数据访问层的SQL xml文件放在Java包…

nginx配置例子-反向代理实现

4.1 反向代理实现&#xff08;实例1&#xff09; 4.1.1需要实现的效果 (1)打开浏览器&#xff0c;在浏览器地址栏输入地址 www.123.com&#xff0c;跳转到liunx.系统tomat主页面中 4.1.2 准备工作 (1&#xff09;在liunx, 系统安装 tomcat, 使用默认端口8080. tomcat安装文…

学习python爬虫需要掌握哪些库?

目录 常见的几种爬虫库 1. Requests 2. BeautifulSoup 3. Selenium 4. Scrapy 5. Urllib 6. Scrapy-Redis 7. Pillow 示例代码 1. Requests 2. BeautifulSoup 3. Selenium 4. Scrapy 5. Urllib 6. Scrapy-Redis 7. Pillow 总结 常见的几种爬虫库 在学习Python爬…

Abandoning the Bayer-Filter to See in the Dark 论文阅读笔记

这是CVPR2022的一篇暗图增强的文章&#xff0c;TCL AI Lab与福州大学&#xff0c;韩国延世大学&#xff0c;安徽大学的合作论文网络以黑暗环境下拍摄的color raw为输入&#xff0c;用一个de-bayer-filter module恢复无拜尔滤波器的raw data&#xff08;文章认为拜尔滤波器使得光…

微服务是SOA,微服务也不是SOA

文章目录 一、什么是SOA&#xff1f; 什么是微服务&#xff1f;SOA 和微服务的区别 公众号&#xff1a; MCNU云原生&#xff0c;文章首发地&#xff0c;欢迎微信搜索关注&#xff0c;更多干货&#xff0c;第一时间掌握&#xff01; 本文源自一次面试官的提问&#xff1a;你觉得…

SwinIR Transformer训练教程(使用自己的数据集)

使用自己的数据集训练SwinIR Transformer SwinIR Transformer图像超分辨率重建训练教程 目录 使用自己的数据集训练SwinIR Transformer一、使用MATLAB对数据集进行BICUBIC插值下采样二、使用MATLAB对数据集进行BICUBIC插值下采样三、训练3.1 下载训练源代码3.2 修改json文件3.…

linux开发工具:git

文章目录 1&#xff1a;Git简介2&#xff1a;Git简明指南2.1&#xff1a;创建新仓库2.2&#xff1a;检出仓库2.3&#xff1a;工作流2.4&#xff1a;添加和提交2.5&#xff1a;推送改动2.6&#xff1a;分支2.7&#xff1a;更新与合并2.8&#xff1a;标签2.9&#xff1a;替换本地…

【数据结构】非线性结构之树结构(含堆)

前言 前面的三篇文章已经将线性结构讲述完毕了&#xff0c;下面的文章将会为大家将讲点新东西&#xff1a;非线性结构中的树结构。萌新对这里的知识点相对陌生&#xff0c;建议反复观看&#xff01;&#xff01; 关于线性结构的三篇文章放在下面&#xff1a; 线性表之顺序表 线…

Kafka传输数据到Spark Streaming通过编写程序java、scala程序实现操作

一、案例说明 现有一电商网站数据文件&#xff0c;名为buyer_favorite1&#xff0c;记录了用户对商品的收藏数据&#xff0c;数据以“\t”键分割&#xff0c;数据内容及数据格式如下&#xff1a; 二、前置准备工作 项目环境说明 Linux Ubuntu 16.04jdk-7u75-linux-x64scal…

Hadoop知识点

1.HDFS写数据流程 客户端通过Distributed FileSystem模块向NameNode请求上传文件&#xff0c;NameNode检查目标文件是否已存在&#xff0c;父目录是否存在。NameNode返回是否可以上传。客户端请求第一个 Block上传到哪几个DataNode服务器上。NameNode返回3个DataNode节点&#…

车载以太网 - SomeIP - 协议用例 - RPC

目录 RPC Protocol specification 1、Cleint和Server端应该为一个服务实例的所有的Methodsevents使用一个TCP连接