当前位置:首页 > 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

在组件中使用:

vue实现页面导出

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

在组件中使用:

vue实现页面导出

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

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

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

相关文章

vue实现共享屏幕

vue实现共享屏幕

共享屏幕的基本实现 在Vue中实现共享屏幕功能通常需要结合浏览器的getDisplayMedia API。以下是一个基础实现示例: <template> <div>…

vue实现文档导入

vue实现文档导入

Vue 实现文档导入的方法 在 Vue 中实现文档导入功能通常涉及文件上传、解析和处理。以下是几种常见的方法: 使用原生文件输入和 FileReader 通过 HTML 的原生 <input…

vue实现多选联动

vue实现多选联动

vue实现多选联动的方法 使用v-model绑定数组 在Vue中,可以通过v-model绑定一个数组来实现多选联动。当复选框被选中或取消选中时,数组会自动更新。 <template>…

vue表单实现搜索

vue表单实现搜索

实现Vue表单搜索功能 在Vue中实现表单搜索功能通常涉及表单绑定、事件处理和搜索逻辑。以下是具体实现方法: 数据绑定与表单结构 使用v-model实现表单与Vue数据的双向绑定: <t…

vue实现适老化样式

vue实现适老化样式

Vue 实现适老化样式的关键方法 全局字体与字号调整 通过 CSS 变量或主题配置统一放大基础字号,建议正文不小于 18px,标题更大。在 App.vue 中设置全局样式: :root { --…

vue怎么实现文件树

vue怎么实现文件树

Vue 实现文件树的方法 使用递归组件 递归组件是处理嵌套数据结构的理想方式。文件树通常包含文件夹和文件的嵌套结构,适合用递归组件实现。 <template> <ul>…