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

vue 实现jqslidedown

在 Vue 中实现类似 jQuery 的 slideDown 效果,可以通过 Vue 的过渡系统或 CSS 动画结合动态样式绑定来实现。以下是几种实现方式: 使用 Vue Transition 组件…

vue实现复选

vue实现复选

Vue 实现复选框 在 Vue 中实现复选框可以通过 v-model 指令绑定数据,同时结合 input 元素的 type="checkbox" 属性来实现。以下是几种常见的实现方式: 单个复选框…

vue实现必填

vue实现必填

Vue 实现表单必填验证的方法 在Vue中实现表单必填验证可以通过多种方式完成,以下是几种常见的方法: 使用HTML5原生属性 最简单的必填验证可以通过HTML5的required属性实现: &l…

vue 实现流程

vue 实现流程

Vue 实现流程 Vue.js 是一个渐进式 JavaScript 框架,用于构建用户界面。以下是 Vue 实现的基本流程: 安装 Vue.js 通过 CDN 引入或使用 npm/yarn 安装:…

vue实现flbook

vue实现flbook

Vue 实现类似 Flbook 的翻页效果 要实现类似 Flbook 的翻页效果,可以使用 Vue 结合 CSS 动画和 JavaScript 事件处理。以下是实现方法: 安装依赖 需要安装 vue…

vue实现画廊

vue实现画廊

Vue实现画廊的基本方法 使用Vue.js实现画廊功能可以通过多种方式完成,以下是一种常见的实现方案: 安装必要依赖 npm install vue-gallery --save 引入组件并注册…