1. 按钮, 点击下载图标图片
<el-button @click="download">按钮</el-button>
2. 创造一个a连接,下载
download() { var canvas = document.getElementsByTagName("canvas") if (canvas && canvas.length > 0) { // 创建标签 var oA = document.createElement("a") // 设置下载名称 oA.download = "Echarts图表" + ".png" // 设置地址以及文件类型 oA.href = canvas[0].toDataURL("image/png") document.body.appendChild(oA) // 触发下载事件 oA.click() // 移除元素 oA.remove() } },
附上完整代码
<template> <div> <canvas width="900" height="600" id="main"></canvas> <el-button @click="download">按钮</el-button> <div id="table-content"> <el-table :data="tableData" style="width: 100%"> <el-table-column type="expand"> <template slot-scope="props"> <el-form label-position="left" inline class="demo-table-expand"> <el-form-item label="商品名称"> <span>{{ props.row.name }}</span> </el-form-item> <el-form-item label="所属店铺"> <span>{{ props.row.shop }}</span> </el-form-item> <el-form-item label="商品 ID"> <span>{{ props.row.id }}</span> </el-form-item> <el-form-item label="店铺 ID"> <span>{{ props.row.shopId }}</span> </el-form-item> <el-form-item label="商品分类"> <span>{{ props.row.category }}</span> </el-form-item> <el-form-item label="店铺地址"> <span>{{ props.row.address }}</span> </el-form-item> <el-form-item label="商品描述"> <span>{{ props.row.desc }}</span> </el-form-item> </el-form> </template> </el-table-column> <el-table-column label="商品 ID" prop="id"></el-table-column> <el-table-column label="商品名称" prop="name"></el-table-column> <el-table-column label="描述" prop="desc"></el-table-column> </el-table> </div> <el-button type="primary" @click="exportToExcel">导出为xlsx</el-button> </div> </template> <script> import echarts from "echarts" import XLSX from "xlsx" import FileSaver from "file-saver" export default { data: function () { return { tableData: [ { id: "12987122", name: "好滋好味鸡蛋仔", category: "江浙小吃、小吃零食", desc: "荷兰优质淡奶,奶香浓而不腻", address: "上海市普陀区真北路", shop: "王小虎夫妻店", shopId: "10333" }, { id: "12987123", name: "好滋好味鸡蛋仔", category: "江浙小吃、小吃零食", desc: "荷兰优质淡奶,奶香浓而不腻", address: "上海市普陀区真北路", shop: "王小虎夫妻店", shopId: "10333" }, { id: "12987125", name: "好滋好味鸡蛋仔", category: "江浙小吃、小吃零食", desc: "荷兰优质淡奶,奶香浓而不腻", address: "上海市普陀区真北路", shop: "王小虎夫妻店", shopId: "10333" }, { id: "12987126", name: "好滋好味鸡蛋仔", category: "江浙小吃、小吃零食", desc: "荷兰优质淡奶,奶香浓而不腻", address: "上海市普陀区真北路", shop: "王小虎夫妻店", shopId: "10333" } ] } }, methods: { download() { var canvas = document.getElementsByTagName("canvas") if (canvas && canvas.length > 0) { // 创建标签 var oA = document.createElement("a") // 设置下载名称 oA.download = "Echarts图表" + ".png" // 设置地址以及文件类型 oA.href = canvas[0].toDataURL("image/png") document.body.appendChild(oA) // 触发下载事件 oA.click() // 移除元素 oA.remove() } }, // 导出为xlsx exportToExcel() { const et = XLSX.utils.table_to_book( document.getElementById("table-content") ) // 此处传入table的DOM节点 const etout = XLSX.write(et, { bookType: "xlsx", bookSST: true, type: "array" }) try { FileSaver.saveAs( new Blob([etout], { type: "application/octet-stream" }), "trade-publish.xlsx" ) // trade-publish.xlsx 为导出的文件名 } catch (e) { console.log(e, etout) } return etout } }, mounted() { // 基于准备好的dom,初始化echarts实例 var myChart = echarts.init(document.getElementById("main")) // 绘制图表 myChart.setOption({ title: { text: "ECharts 入门示例" }, tooltip: {}, xAxis: { data: ["衬衫", "羊毛衫", "雪纺衫", "裤子", "高跟鞋", "袜子"] }, yAxis: {}, series: [ { name: "销量", type: "bar", data: [5, 20, 36, 10, 10, 20] } ] }) } } </script> <style lang=‘scss‘ scoped> .demo-table-expand { font-size: 0; } .demo-table-expand label { width: 90px; color: #99a9bf; } .demo-table-expand .el-form-item { margin-right: 0; margin-bottom: 0; width: 50%; } </style>
原文:https://www.cnblogs.com/liuyuexue520/p/13692751.html