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>
