美文网首页
vue表格数据打印功能的实现

vue表格数据打印功能的实现

作者: 忠犬兽_d66c | 来源:发表于2020-08-14 21:18 被阅读0次

    一、打印当前页数据

    单页打印.png

    只对当前页面可见数据进行打印,实现方法不唯一,此处介绍相对简单的vue-print-nb。他的缺点是只能打印可见区域,不能分页打印 。

    1.安装

    npm install vue-print-nb --save
    

    2.引入

    // 安装好以后在main.js文件中引入
    import Print from 'vue-print-nb'
    Vue.use(Print);  //注册
    

    3.使用

    3.1直接使用id,不对最终打印的表格进行样式修改

    • template
     // 通过ID直接打印
      <div id="print_demo" >
        <p>打印内容</p>
      </div>
    <button v-print="'#print_demo'">打印</button>
    

    3.2使用printObj,可以对打印的表格进行样式调整

    • template
    // 使用printObj
      <button v-print="printObj">打印</button>
     
    <div id="print_demo" style="background:red;">
      <p>打印内容</p>
    </div>
    
    • script
    export default {
        data() {
            return {
                printObj: {
                  id: "print_demo",
                  popTitle: '打印的标题',
                  extraCss: 'https://www.google.com,https://www.google.com',
                  extraHead: '<meta http-equiv="Content-Language"content="zh-cn"/>'
                }
            };
        }
    }
    

    二、打印数据库内全部数据

    全部打印.png

    将数据库内的全部数据以表格的形式进行打印,需要调用后台接口直接从数据库内进行数据的查找,而不是直接在页面内获取数据。

    1.安装

    npm install print-js --save
    

    2.引入

    // 在当前vue文件内引用
    import printJS from 'print-js'
    

    3.使用

    • template
    <el-button  @click="printJson">打印全部表格</el-button>
    
    • script-->methods
    async printJson() {
          //通过getdata调用后台接口获取数据封装到res
          const res = await getdata();
          this.list = res.data || [];
          let data = []
          for (let i=0; i < this.list.length; i++) {
              data.push({
              field1: this.list[i].field1,
              field2: this.list[i].field2,
              field3: this.list[i].field3,
              field4: this.list[i].field4,
            })
          }
          printJS({
            printable: data,
            properties: [
              {
                field: 'field1',
                displayName: '第一个字段',
                columnSize: 1
              },
              {
                field: 'field2',
                displayName: '第二个字段',
                columnSize: 1
              },
              {
                field: 'field3',
                displayName: '第三个字段',
                columnSize: 1
              },
              {
                field: 'field4',
                displayName: '第四个字段',
                columnSize: 1
              }
            ],
            type: 'json',
            header: '标题',
            // 样式设置
            gridStyle: 'border: 2px solid #3971A5;',
            gridHeaderStyle: 'color: red;  border: 2px solid #3971A5;'
          })
        },
    

    相关文章

      网友评论

          本文标题:vue表格数据打印功能的实现

          本文链接:https://www.haomeiwen.com/subject/acvndktx.html