当前位置:首页 > VUE

vue实现页面导出

2026-01-15 22:31:55VUE

Vue 实现页面导出为 PDF 或图片

使用 html2canvas 和 jsPDF 导出为 PDF

安装依赖库:

npm install html2canvas jspdf --save

在 Vue 组件中实现导出功能:

import html2canvas from 'html2canvas'
import jsPDF from 'jspdf'

export default {
  methods: {
    exportToPDF() {
      const element = document.getElementById('export-content')
      html2canvas(element).then(canvas => {
        const imgData = canvas.toDataURL('image/png')
        const pdf = new jsPDF('p', 'mm', 'a4')
        const imgWidth = 210
        const pageHeight = 295
        const imgHeight = canvas.height * imgWidth / canvas.width
        let heightLeft = imgHeight
        let position = 0

        pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight)
        heightLeft -= pageHeight

        while (heightLeft >= 0) {
          position = heightLeft - imgHeight
          pdf.addPage()
          pdf.addImage(imgData, 'PNG', 0, position, imgWidth, imgHeight)
          heightLeft -= pageHeight
        }

        pdf.save('exported-page.pdf')
      })
    }
  }
}

使用 vue-json-excel 导出为 Excel

安装依赖:

npm install vue-json-excel --save

在组件中使用:

import JsonExcel from 'vue-json-excel'

export default {
  components: {
    JsonExcel
  },
  data() {
    return {
      json_data: [
        {name: '张三', age: 30},
        {name: '李四', age: 25}
      ],
      fields: {
        '姓名': 'name',
        '年龄': 'age'
      },
      filename: '用户数据.xls'
    }
  }
}

模板中使用:

<download-excel 
  :data="json_data"
  :fields="fields"
  :name="filename">
  导出Excel
</download-excel>

使用 FileSaver.js 导出文本文件

安装依赖:

npm install file-saver --save

在组件中使用:

import { saveAs } from 'file-saver'

export default {
  methods: {
    exportTextFile() {
      const content = '这是要导出的文本内容'
      const blob = new Blob([content], {type: 'text/plain;charset=utf-8'})
      saveAs(blob, 'exported-file.txt')
    }
  }
}

使用 vue-table-export 导出表格数据

安装依赖:

npm install vue-table-export --save

在组件中使用:

import VueTableExport from 'vue-table-export'

export default {
  components: {
    VueTableExport
  },
  data() {
    return {
      tableData: [
        {id: 1, name: '产品A', price: 100},
        {id: 2, name: '产品B', price: 200}
      ],
      exportFields: {
        'ID': 'id',
        '产品名称': 'name',
        '价格': 'price'
      }
    }
  }
}

模板中使用:

vue实现页面导出

<vue-table-export
  :data="tableData"
  :fields="exportFields"
  filename="产品数据"
  sheetname="产品">
  导出表格数据
</vue-table-export>

这些方法提供了在 Vue 中实现页面内容导出的多种方案,可以根据具体需求选择合适的实现方式。

标签: 页面vue
分享给朋友:

相关文章

vue实现跑车

vue实现跑车

Vue 实现跑车动画效果 使用 Vue 结合 CSS 动画可以实现跑车在屏幕上移动的效果。以下是一个完整的实现方案: 创建 Vue 组件结构 <template> <div c…

vue实现toast

vue实现toast

Vue 实现 Toast 的方法 使用第三方库(推荐) 对于快速实现 Toast 功能,推荐使用成熟的第三方库如 vue-toastification 或 vant 的 Toast 组件。 安装 v…

vue实现selectable

vue实现selectable

Vue 实现可选择的 Select 组件 在 Vue 中实现一个可选择的 Select 组件,可以通过以下几种方式: 使用原生 HTML select 元素 <template>…

vue实现系统

vue实现系统

Vue 实现系统的核心方法 使用 Vue.js 构建系统时,需结合其响应式特性与组件化开发模式。以下为关键实现路径: 项目初始化与工程配置 通过 Vue CLI 或 Vite 创建项目骨架,推荐选择…

vue实现队列

vue实现队列

Vue 实现队列功能 在 Vue 中实现队列功能可以通过多种方式完成,以下是几种常见的方法: 使用数组模拟队列 队列遵循先进先出(FIFO)原则,可以用数组的 push 和 shift 方法模拟入队…

vue 实现赋值

vue 实现赋值

Vue 实现赋值的方法 在 Vue 中,赋值操作通常涉及数据绑定和响应式更新。以下是几种常见的赋值方式: 直接赋值给 data 属性 在 Vue 实例的 data 对象中定义的属性可以直接通过 th…