1.1.3 • Published 4 years ago

pl-export-excel v1.1.3

Weekly downloads
19
License
ISC
Repository
-
Last release
4 years ago

pl-export-excel(当前版本 1.1.3)

一个导出表格的插件

method of use

npm i pl-export-excel

pl-export-excel方法

方法名说明参数参数表述
formatJson格式化数据filterVal, jsonDatafilterVal 表头在数据中的对应key数组; jsonData 需要导出表格数据
exportExcelMethod通过table ID渲染导出表格(不能是组件,必须是手写的table表格)tableId, fileName, sheetNametableId 需要导出表格的ID; fileName 文件名; sheetName 表名
exportJsonToExcel通过json渲染导出表格(常用)见下面的表见下面的表
exportTableToExcel通过table标签渲染导出表格(常用,可以是el-table,也可是pl-table)见下面的表见下面的表

exportTableToExcel方法参数描述

参数名参数描述必填类型默认值
id需要导出表格的IDString
filename表格名String'空'
bookType文件类型String'xlsx'
styleFun样式函数方法FunctionstyleFun(参数是当前表格ws)

exportJsonToExcel方法参数描述

参数名参数描述必填类型默认值
title标题Array[]
multiHeader多级头Array[]
header头部Array[]
data表格数据Array[]
filename表格名String''
merges合并单元格数组Array[]
autoWidth宽度是否自适应Booleantrue
bookType文件类型String'xlsx'
styleFun样式函数方法FunctionstyleFun(参数是当前表格ws)

npm方式(用法)

实例

   // 第一步
   在入口文件的index.html,引入XLSX样式
   <script src="https://unpkg.com/pl-export-excel@1.1.1/package/xlsx.core.min.js"></script>
   // 第二步,在项目中的使用
   import { exportJsonToExcel, formatJson } from 'pl-export-excel'
   // 导出按钮方法
   handleEmits () {
        // 表头
        const tHeader = ['经销商名称', '下单时间', '订单编号', '客户名称', '订单状态', '付款状态']
        // 表头在数据中的对应key
        const filterVal = ['names', 'date', 'orderNumber', 'customerName', 'orderState', 'orderPayState']
        // 表格数据
        const list = Array.from({ length: 1000 }, (_, idx) => ({ names: '娃哈哈',
            date: '201920120',
            orderNumber: '1521',
            customerName: '彭垒',
            orderState: '在线',
            orderPayState: '全付款'
        }))
        // 导出的数据
        const data = formatJson(filterVal, list)
        // 导出表格
        exportJsonToExcel({
          header: tHeader,
          data: data,
          merges: [{
              s: {//s为开始
                c: 0,//开始列
                r: 0//可以看成开始行,实际是取值范围
              },
              e: {//e结束
                c: 5,//结束列
                r: 1//结束行
              }
          }],
          multiHeader: [
            ["工作情况一览表", "", "", "", "", ""],
            ["", "", "", "", "", ""] // 为啥这里需要这样搞个空字符呢,存属上面合并列导致不得不这样写个哦
          ],
          filename: 'erp订单',
          bookType: 'xlsx',
          // 不懂怎么设置ws,看https://github.com/protobi/js-xlsx/tree/beta#cell-object
          styleFun: function (ws) {
            ws["A1"].s = {
              font: {
                name: '宋体',
                sz: 18,
                color: {rgb: "ff0000"},
                bold: true,
                italic: false,
                underline: false
              },
              alignment: {
                horizontal: "center",
                vertical: "center"
              },
              fill: {
                fgColor: {rgb: "008000"},
              },
            };
          }
        })
   }

> 注意如果你不需要 pl-export-excel参与打包(减少打包体积)
  // 第一步: 请在webpack配置
  externals: {
    'pl-export-excel': 'PlExportExcel'
  }
  // 第二步:  在入口文件的index.html
  // 引入pl-export-excel
  <script src="https://unpkg.com/pl-export-excel@1.1.1/lib/index.js"></script>
  // 引入XLSX样式
  <script src="https://unpkg.com/pl-export-excel@1.1.1/package/xlsx.core.min.js"></script>

cdn方式用法

实例

  // 在html页面引入:
  <body>
    <div>我是内容</div>
    在这里引入脚本
    // 引入pl-export-excel
    <script src="https://unpkg.com/pl-export-excel@1.1.1/lib/index.js"></script>
     // 引入XLSX样式
    <script src="https://unpkg.com/pl-export-excel@1.1.1/package/xlsx.core.min.js"></script>
  </body>

  // 写法
  <body>
      <div id="myApp">
          我是按钮
      </div>
      <script>
          var btn = document.getElementById('myApp')
          btn.onclick = handleEmits
          // 导出按钮
          function handleEmits () {
              // 表头
              const tHeader = ['经销商名称', '下单时间', '订单编号', '客户名称']
              // 表头在数据中的对应key
              const filterVal = ['names', 'date', 'orderNumber', 'customerName']
              // 表格数据
              const list = Array.from({length: 10000}, () => ({
                  date: '2016-05-03',
                  name: '王小虎',
                  address: '上海市普陀区金沙江路 1516 弄'
              }))
              // 导出的数据
              const data = PlExportExcel.formatJson(filterVal, list)
              // 导出表格
              PlExportExcel.exportJsonToExcel({
                  header: tHeader,
                  data: data,
                  filename: '经销商表格',
                  autoWidth: true,
                  bookType: 'xlsx'
              })
          }
      </script>
  </body>
1.1.1

4 years ago

1.1.0

4 years ago

1.1.3

4 years ago

1.1.2

4 years ago

1.0.4

5 years ago

1.0.3

5 years ago

1.0.2

5 years ago

1.0.1

5 years ago

1.0.0

5 years ago