zoukankan      html  css  js  c++  java
  • antd-vue实现导出excel

    首先需要下载插件    "xlsx": "^0.15.6"

    然后在mainjs 当中引入xlsx

    并进行全局方法的封装

    import XLSX from 'xlsx'
    /**
     * @function 生成表格的方法
     * @param {String} excelName 文件名
     * @param {Array} titleArr 数据表头显示
     * @param {Array} dataArr 数据内容显示
     */
     const ToDoExcel = (excelName, titleArr, dataArr) => {
      var filename = excelName + ".xlsx" //文件名称
      var data = [titleArr, ...dataArr]  //数据,一定注意需要时二维数组
      var ws_name = "Sheet1" //Excel第一个sheet的名称
      var wb = XLSX.utils.book_new(), ws = XLSX.utils.aoa_to_sheet(data)
      XLSX.utils.book_append_sheet(wb, ws, ws_name)  //将数据添加到工作薄
      XLSX.writeFile(wb, filename)
    }
    Vue.prototype.$ToDoExcel = ToDoExcel
    

    最后在页面调用

     computed: {
          //  定义表头数据
          titleArr() {
            let arr = []
            this.columns.map((item)=> {
                arr.push(item.title)
            })
            return arr
          }
        },
        methods: {
             ToDoExcel() {
    //  这里是请求接口   这样写的话,一般不传分页参数   就会导出全部数据
            getOrderInfo()
              .then(res => {
                console.log(res)
                // 定义表格数据
                let arr = []
                res.map(item => {
                  arr.push([
                    item.orderNo,
                    item.sendNo,
                    item.statusClothes,
                    item.idClothes,
                  ])
                })
                // 调用导出EXCEL的方法
                this.$ToDoExcel(`订单信息`, this.titleArr, arr)
              })
        }
  • 相关阅读:
    antd Upload的使用
    table 的使用方法
    标题前点的制作
    插件multiBtnList的使用
    render的写法
    数据请求
    实体类为什么使用包装类
    el-table中如何遍历数组中对象里的数组?
    关于hash的描述,hashcode etc
    Java集合框架详解
  • 原文地址:https://www.cnblogs.com/llive/p/14880959.html
Copyright © 2011-2022 走看看