首页 > 其他 > 详细

将echarts 导出为图片

时间:2020-09-18 18:47:10      阅读:51      评论:0      收藏:0      [点我收藏+]

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>

 

将echarts 导出为图片

原文:https://www.cnblogs.com/liuyuexue520/p/13692751.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!