当前位置:首页 > VUE

vue实现导出 打印

2026-01-16 23:43:52VUE

Vue实现导出功能

使用xlsx库可以实现Excel导出功能。安装依赖后,在Vue组件中引入并使用。

vue实现导出 打印

npm install xlsx

在Vue组件中实现导出逻辑:

vue实现导出 打印

import XLSX from 'xlsx';

export default {
  methods: {
    exportToExcel() {
      const data = [
        ['Name', 'Age', 'Email'],
        ['John', 25, 'john@example.com'],
        ['Jane', 30, 'jane@example.com']
      ];

      const ws = XLSX.utils.aoa_to_sheet(data);
      const wb = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
      XLSX.writeFile(wb, 'export.xlsx');
    }
  }
}

Vue实现打印功能

使用浏览器原生打印API实现打印功能。

export default {
  methods: {
    printContent() {
      const printContent = document.getElementById('printable-area').innerHTML;
      const originalContent = document.body.innerHTML;

      document.body.innerHTML = printContent;
      window.print();
      document.body.innerHTML = originalContent;
    }
  }
}

结合导出和打印的完整示例

<template>
  <div>
    <div id="printable-area">
      <table>
        <tr>
          <th>Name</th>
          <th>Age</th>
          <th>Email</th>
        </tr>
        <tr v-for="item in data" :key="item.name">
          <td>{{ item.name }}</td>
          <td>{{ item.age }}</td>
          <td>{{ item.email }}</td>
        </tr>
      </table>
    </div>

    <button @click="exportToExcel">导出Excel</button>
    <button @click="printContent">打印</button>
  </div>
</template>

<script>
import XLSX from 'xlsx';

export default {
  data() {
    return {
      data: [
        { name: 'John', age: 25, email: 'john@example.com' },
        { name: 'Jane', age: 30, email: 'jane@example.com' }
      ]
    }
  },
  methods: {
    exportToExcel() {
      const exportData = [
        ['Name', 'Age', 'Email'],
        ...this.data.map(item => [item.name, item.age, item.email])
      ];

      const ws = XLSX.utils.aoa_to_sheet(exportData);
      const wb = XLSX.utils.book_new();
      XLSX.utils.book_append_sheet(wb, ws, 'Sheet1');
      XLSX.writeFile(wb, 'export.xlsx');
    },
    printContent() {
      const printContent = document.getElementById('printable-area').innerHTML;
      const originalContent = document.body.innerHTML;

      document.body.innerHTML = printContent;
      window.print();
      document.body.innerHTML = originalContent;
    }
  }
}
</script>

注意事项

打印功能会替换整个页面内容,打印完成后恢复原内容。对于复杂页面,建议使用iframe或专门的打印样式表。

导出Excel时,数据需要转换为二维数组格式。xlsx库支持多种数据格式转换方法,可根据实际需求选择。

标签: vue
分享给朋友:

相关文章

vue里实现增删改查

vue里实现增删改查

在Vue中实现增删改查 数据初始化 在Vue组件的data中定义初始数据和表单绑定的变量: data() { return { items: [ { id: 1, name:…

vue实现公告

vue实现公告

Vue 实现公告功能的方法 公告功能通常需要实现滚动展示、自动切换或固定显示的效果。以下是几种常见的实现方式: 使用 marquee 标签实现滚动公告 <template> &l…

jquery实现vue

jquery实现vue

jQuery 和 Vue.js 是两种不同理念的前端工具,jQuery 以 DOM 操作和事件驱动为核心,而 Vue.js 是数据驱动的现代化框架。如果想用 jQuery 实现类似 Vue 的功能(如…

vue实现树

vue实现树

Vue 实现树形结构的方法 使用递归组件实现树形结构 递归组件是Vue中实现树形结构的常见方式。通过组件调用自身,可以轻松构建多层嵌套的树形数据。 <template> <ul…

vue实现定时

vue实现定时

Vue 实现定时功能的方法 使用 setInterval 和 clearInterval 在 Vue 中可以通过 setInterval 和 clearInterval 实现定时功能。在组件的 mou…

javascript实现vue

javascript实现vue

Vue.js 的基本实现 在 JavaScript 中实现 Vue.js 的核心功能,主要包括数据绑定、响应式系统和虚拟 DOM。以下是一个简化的实现示例。 数据响应式系统 通过 Object.de…