vue中将echarts的图导出到excel表格中

vue中通过插件exceljs和file-saver将echarts的图导出到excel表格中

1.实现的效果

在这里插入图片描述

2.安装echarts、exceljs和file-saver等库

npm install exceljs file-saver --save
npm install echarts --save

3.具体实现代码

安装好相应的库后,渲染echarts图时要给出height和width属性,不然可能无法显示图表。

<template>
  <div>
    <div ref="chart" id="lineChart" style="height: 400px; width: 800px"></div>
    <el-button @click="exportExcel"> 导出图表</el-button>
  </div>
</template>

<script>
import * as echarts from 'echarts'; // 引入echarts, * as echarts 表示引入所有的方法
import ExcelJS from 'exceljs';    // 引入exceljs, 用于生成excel文件
import { saveAs } from 'file-saver' // 引入file-saver, 用于保存文件


export default {
  data() {
    return {
      chart: null,
    }
  },
  mounted() {
    this.chart = echarts.init(this.$refs.chart);

    // 绘制图表
    const option = {
      title: {
        text: 'Echarts 示例'
      },
      tooltip: {},
      legend: {
        data: ['数据']
      },
      xAxis: {
        data: ['1月', '2月', '3月', '4月', '5月', '6月']
      },
      yAxis: {},
      series: [{
        name: '数据',
        type: 'bar',
        data: [100, 200, 300, 400, 500, 600],
        markLine: {
          data: [
            { type: 'average', name: '平均值' }
          ]
        }
      }]
    };
    this.chart.setOption(option);
  },
  methods: {
    exportExcel() {
      const workbook = new ExcelJS.Workbook(); // 创建工作簿
      const worksheet = workbook.addWorksheet('Sheet1'); // 添加工作表

      const chart = echarts.getInstanceByDom(this.$refs.chart) // 获取图表实例
      const base64Image = chart.getDataURL({
        pixelRatio: 2, // 导出图片的分辨率比例,默认为1,即图片的分辨率为屏幕分辨率的一倍
        backgroundColor: '#fff' // 导出图片的背景色
      })
      let image= workbook.addImage({ // 添加图片
          base64: base64Image, // 图片的base64编码
          extension: 'png'  // 图片的扩展名
        });
        worksheet.addImage(image, 'A1:J20'); // 将图片添加到工作表中
        workbook.xlsx.writeBuffer().then(function (buffer) { // 生成excel文件的二进制数据
        saveAs.saveAs(new Blob([buffer], {  // 生成Blob对象
          type: 'application/octet-stream'  // 指定文件的MIME类型
        }), 'xchart.xlsx');  // 指定文件名
      });
    }
  }
}
</script>


  • 5
    点赞
  • 19
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 5
    评论
要将Vue Echarts导出Excel,您可以使用以下步骤: 1. 首先,您需要在Vue项目安装xlsx和file-saver库。您可以使用以下命令进行安装: ``` npm install xlsx file-saver --save ``` 2. 在Vue组件,您需要导入以下库: ```javascript import XLSX from 'xlsx'; import FileSaver from 'file-saver'; ``` 3. 在Vue组件,您需要定义一个导出函数,该函数将Echarts形数据转换为Excel数据,并将其保存为Excel文件。以下是一个示例代码: ```javascript exportChartToExcel() { // 获取Echarts形实例 const chartInstance = this.$refs.chart.getEchartsInstance(); // 获取Echarts形数据 const chartData = chartInstance.getDataURL({ type: 'png', pixelRatio: 2, backgroundColor: '#fff' }); // 创建Excel工作簿 const workbook = XLSX.utils.book_new(); // 创建Excel工作表 const worksheet = XLSX.utils.aoa_to_sheet([[{ s: { fill: { patternType: 'solid', fgColor: { rgb: 'FFFFFF' } }, font: { sz: 24, bold: true }, alignment: { horizontal: 'center' } }, t: 's', v: 'Echarts Chart Data' }], [{}, {}]]); // 将形数据添加到Excel工作表 XLSX.utils.sheet_add_image(worksheet, chartData, { tl: { col: 2, row: 2 }, br: { col: 10, row: 20 }, editAs: 'oneCell' }); // 将工作表添加到工作簿 XLSX.utils.book_append_sheet(workbook, worksheet, 'Echarts Data'); // 将工作簿保存为Excel文件 const excelData = XLSX.write(workbook, { bookType: 'xlsx', type: 'array' }); const blob = new Blob([excelData], { type: 'application/octet-stream' }); FileSaver.saveAs(blob, 'echarts-data.xlsx'); } ``` 4. 在Vue组件,您需要在Echarts添加一个按钮或链接,以触发导出函数。以下是一个示例代码: ```html <template> <div> <div ref="chart" style="width: 100%; height: 400px;"></div> <button @click="exportChartToExcel()">Export to Excel</button> </div> </template> ``` 请注意,此示例代码仅适用于将Echarts导出Excel静态报告。如果您需要动态更新形和数据,则需要使用其他工具或技术来实现。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

前端小白菜03

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值