当前位置:首页 > VUE

vue实现打印表格

2026-01-21 09:48:47VUE

使用Vue实现表格打印功能

方法一:使用window.print()打印整个页面

在Vue组件中添加打印按钮,调用浏览器原生打印功能

<template>
  <div>
    <button @click="printTable">打印表格</button>
    <table id="printable-table">
      <!-- 表格内容 -->
    </table>
  </div>
</template>

<script>
export default {
  methods: {
    printTable() {
      window.print();
    }
  }
}
</script>

<style>
@media print {
  body * {
    visibility: hidden;
  }
  #printable-table, #printable-table * {
    visibility: visible;
  }
  #printable-table {
    position: absolute;
    left: 0;
    top: 0;
  }
}
</style>

方法二:使用iframe打印特定内容

创建一个iframe来加载需要打印的内容

vue实现打印表格

printTable() {
  const printContent = document.getElementById('printable-table').outerHTML;
  const frame = document.createElement('iframe');
  frame.style.position = 'absolute';
  frame.style.width = '0';
  frame.style.height = '0';
  frame.style.border = 'none';

  frame.onload = function() {
    frame.contentWindow.focus();
    frame.contentWindow.print();
    document.body.removeChild(frame);
  };

  document.body.appendChild(frame);
  frame.contentDocument.write(printContent);
  frame.contentDocument.close();
}

方法三:使用打印专用CSS

为打印场景设计专门的样式

vue实现打印表格

@media print {
  .no-print {
    display: none;
  }
  table {
    width: 100%;
    border-collapse: collapse;
  }
  th, td {
    border: 1px solid #000;
    padding: 8px;
  }
  thead {
    display: table-header-group;
  }
  tfoot {
    display: table-footer-group;
  }
}

方法四:使用第三方库vue-print-nb

安装并使用专门为Vue设计的打印插件

npm install vue-print-nb --save
import Print from 'vue-print-nb'
Vue.use(Print);
<template>
  <div>
    <button v-print="'#printable-table'">打印表格</button>
    <table id="printable-table">
      <!-- 表格内容 -->
    </table>
  </div>
</template>

方法五:处理分页打印

确保表格在打印时分页不会截断行

@media print {
  table {
    page-break-inside: auto;
  }
  tr {
    page-break-inside: avoid;
    page-break-after: auto;
  }
  thead {
    display: table-header-group;
  }
  tfoot {
    display: table-footer-group;
  }
}

这些方法可以根据具体需求选择使用,从简单的原生打印到更复杂的第三方解决方案都能满足不同场景的需求。

标签: 表格vue
分享给朋友:

相关文章

vue表格重置怎么实现

vue表格重置怎么实现

重置表格数据的方法 在Vue中重置表格数据通常需要操作绑定的数据源,以下是几种常见实现方式: 直接重置数据源 // 假设表格绑定的是tableData this.tableData = [...t…

vue 实现在线预览

vue 实现在线预览

Vue 实现在线预览的常见方法 使用 iframe 嵌入 通过 iframe 标签可以嵌入多种类型的文件,如 PDF、图片、网页等。需要确保文件地址可访问。 <template> &…

vue实现muli

vue实现muli

Vue 实现多语言(i18n)支持 在 Vue 项目中实现多语言(i18n)功能,通常使用 vue-i18n 插件。以下是具体实现步骤: 安装 vue-i18n npm install vue-i…

简单实现vue

简单实现vue

Vue 的基本实现 创建一个简单的 Vue 应用需要引入 Vue 库,并编写基本的模板和数据绑定逻辑。 <!DOCTYPE html> <html lang="en"> &l…

vue实现剪辑

vue实现剪辑

Vue 实现视频剪辑功能 在Vue中实现视频剪辑功能通常需要结合HTML5的<video>元素和第三方库(如FFmpeg.js或Video.js)。以下是几种常见的实现方法: 使用FFm…

vue实现pie

vue实现pie

Vue 实现饼图 在 Vue 中实现饼图通常可以通过第三方图表库(如 ECharts、Chart.js 或 Highcharts)来完成。以下是使用 ECharts 和 Chart.js 的两种常见方…