elment ui 表格数据打印

server/2025/2/12 12:25:44/

通过调用浏览器自带的打印功能,完成对table数据的打印 

(打印表格必须要去掉表头中的fixed属性,每一列的宽度可以通过 width 来控制)

 <el-table-column width='100' prop="code" label=""> </el-table-column>

代码

<template><div><el-button @click="PrintForm('printData')">打印表格</el-button><el-table :data="tableData" style="width: 100%" id="printData"><el-table-column prop="date" label="日期" width="180"> </el-table-column><el-table-column prop="name" label="姓名" width="180"> </el-table-column><el-table-column prop="address" label="地址"> </el-table-column></el-table></div>
</template><script>
export default {name: "",data() {return {tableData: [{date: "2016-05-02",name: "王小虎",province: "上海",city: "普陀区",address: "上海市普陀区金沙江路 1518 弄",zip: 200333,tag: "家",},{date: "2016-05-04",name: "王小虎",province: "上海",city: "普陀区",address: "上海市普陀区金沙江路 1517 弄",zip: 200333,tag: "公司",},{date: "2016-05-01",name: "王小虎",province: "上海",city: "普陀区",address: "上海市普陀区金沙江路 1519 弄",zip: 200333,tag: "家",},{date: "2016-05-03",name: "王小虎",province: "上海",city: "普陀区",address: "上海市普陀区金沙江路 1516 弄",zip: 200333,tag: "公司",},],};},created() {},watch: {},props: {},methods: {//打印页面内容PrintForm(id) {// 空页面let printStr ="<html><head><meta http-equiv='Content-Type' content='text/html; charset=utf-8'></head>";// 定义element-ui table组件的样式const tabStyle = `<style>table{width:100%;display:table-cell!important;box-sizing:border-box;}.el-table__header,.el-table__body,.el-table__footer{width:100%!important;border-collapse: collapse;text-align:center;}table,table tr th, table tr td { border:1px solid #ddd;color:#606266;word-wrap:break-word}table tr th,table tr td{padding:5 10px;word-wrap:break-word }.el-table__body, tr td .cell{width:100%!important}.el-table th.gutter{display: none;}.el-table colgroup.gutter{display: none;}</style><body>`;let content = "";// 获取名为传入id的 dom元素内的内容const html = document.getElementById(id).innerHTML;// 新建一个 DOMconst div = document.createElement("div");const printDOMID = "printDOMElement";div.id = printDOMID;div.innerHTML = html;// elment ui 的表格中表头与内容是用的两个表格去渲染的 所以这里要做拼接// 提取第一个表格的内容 即表头const ths = div.querySelectorAll(".el-table__header-wrapper th");const ThsTextArry = [];for (let i = 0, len = ths.length; i < len; i++) {if (ths[i].innerText !== "") ThsTextArry.push(ths[i].innerText);}// 删除多余的表头div.querySelector(".hidden-columns").remove();// 第一个表格的内容提取出来后已经没用了 删掉div.querySelector(".el-table__header-wrapper").remove();// 将第一个表格的内容插入到第二个表格let newHTML = "<tr>";for (let i = 0, len = ThsTextArry.length; i < len; i++) {newHTML +='<td style="text-align: center; font-weight: bold">' +ThsTextArry[i] +"</td>";}newHTML += "</tr>";div.querySelector(".el-table__body-wrapper table").insertAdjacentHTML("afterbegin", newHTML);let str = div.innerHTML;// 拼接空页面+style样式+dom内容content = content + str;printStr = printStr + tabStyle + content + "</body></html>";// 打开新页面let pWin = window.open("_blank");// 将内容赋值到新页面pWin.document.write(printStr);// 使用setTimeout,等页面dom元素渲染完成后再打印。setTimeout(() => {pWin.print(); // 调用打印功能。pWin.close(); // 关闭 打印创建的当前页面}, 300);},},
};
</script><style lang="less" scoped>
</style>


http://www.ppmy.cn/server/167053.html

相关文章

鸿蒙NEXT开发-鸿蒙三方库

基本介绍 三方库是开发者在系统能力的基础上进行了一层具体功能的封装&#xff0c;对其能力进行拓展&#xff0c;提供更加方便的接口&#xff0c;提升开发效率的工具。 我们在之前的课程中学习过如何安装三方库axios了&#xff0c;我们大家可以通过ohpm install ohos/axios进行…

AWS全球加速架构在跨国实时交互系统中的优化实践

背景&#xff1a;跨境电商平台的性能瓶颈 某跨境电商平台&#xff08;为保护客户隐私简称Platform X&#xff09;业务覆盖北美、欧洲、东南亚三大区域&#xff0c;日均活跃用户超50万。其核心业务系统包含&#xff1a;商品实时竞价模块、跨国直播带货系统、动态定价API服务。…

深入解析 STM32 GPIO:结构、配置与应用实践

理解 GPIO 的工作原理和配置方法是掌握 STM32 开发的基础&#xff0c;后续的外设&#xff08;如定时器、ADC、通信接口&#xff09;都依赖于 GPIO 的正确配置。 目录 一、GPIO 的基本概念 二、GPIO 的主要功能 三、GPIO 的内部结构 四、GPIO 的工作模式 1. 输入模式 2. 输…

Linux之【网络I/O】前世今生(一)

在 Linux之【磁盘I/O】前世今生 一文中&#xff0c;我们介绍了文件I/O 的细节。本文将继续介绍网络I/O的内容。 一、 基本概念 介绍网络I/O前&#xff0c;先了解一些基本概念。 1.1、上下文 CPU 寄存器&#xff0c;是CPU内置的小容量、速度极快的内存。程序计数器&#xff…

MySQL 中可以通过添加主键来节省磁盘空间吗?(译文)

从历史上看&#xff0c;MySQL 不需要在表上定义显式主键&#xff0c;直到今天默认都是这样。不过&#xff0c;这种要求是通过两种复制方法施加的&#xff1a;组复制和 Percona XtraDB 集群 &#xff08;PXC&#xff09;&#xff0c;默认情况下不允许使用没有主键的表。对于缺少…

独立站赋能反向海淘:跨境代购系统的用户体验与支付解决方案

随着全球化的推进以及消费者对海外商品多样化需求的增长&#xff0c;独立站赋能的反向海淘模式愈发火热&#xff0c;其中跨境代购系统的用户体验与支付解决方案起着关键作用。 一、跨境代购系统的用户体验 界面友好性 独立站的页面设计需要简洁、直观&#xff0c;方便用户快速…

innovus如何分步长func和dft时钟

在Innovus工具中&#xff0c;分步处理功能时钟&#xff08;func clock&#xff09;和DFT时钟&#xff08;如扫描测试时钟&#xff09;需要结合设计模式&#xff08;Function Mode和DFT Mode&#xff09;进行约束定义、时钟树综合&#xff08;CTS&#xff09;和时序分析。跟随分…

.net framework 4.5 的项目,用Mono 部署在linux

步骤 1&#xff1a;安装 Mono 更新包列表&#xff1a; 首先&#xff0c;更新 Ubuntu 的包列表以确保获取最新的软件包信息。 sudo apt update 安装 Mono&#xff1a; 安装 Mono 完整版&#xff08;mono-complete&#xff09;&#xff0c;它包含了运行 .NET 应用程序所需的所有…