资讯专栏INFORMATION COLUMN

vue.js中如何导出Excel表格

lunaticf / 1932人阅读

摘要:有一个项目需求,要求在前端项目中导出表格,经过查找代码确实可以实现,具体实现步骤为安装依赖导入两个下载和,在目录下新建文件夹,里面放入和两个文件在引入这两个文件在组件中使用导出的方法序号昵称姓名上面设置的表格第一行的标题上面的是里对

有一个项目需求,要求在前端项目中导出Excel表格,经过查找代码,Vue.js确实可以实现,具体实现步骤为:

1.安装依赖

npm install -S file-saver xlsx
npm install -D script-loader

2.导入两个JS
下载Blob.js和Export2Excel.js,在src目录下新建Excel文件夹,里面放入Blob.js和Export2Excel.js两个JS文件

3.在main.js引入这两个JS文件 **

import Blob from "./excel/Blob"
import Export2Excel from "./excel/Export2Excel.js"

4.在组件中使用

//导出的方法
exportExcel() {
  require.ensure([], () => {
    const { export_json_to_excel } = require("../excel/Export2Excel");
    const tHeader = ["序号", "昵称", "姓名"];
    // 上面设置Excel的表格第一行的标题
    const filterVal = ["index", "nickName", "name"];
    // 上面的index、nickName、name是tableData里对象的属性
    const list = this.tableData;  //把data里的tableData存到list
    const data = this.formatJson(filterVal, list);
    export_json_to_excel(tHeader, data, "列表excel");
  })
},

formatJson(filterVal, jsonData) {
  return jsonData.map(v => filterVal.map(j => v[j]))
}

tHeader是表头,filterVal 中的数据是表格的字段,tableData中存放表格里的数据,类型为数组,里面存放对象,表格的每一行为一个对象。
tableData 中的值为:

data () {
return {
  tableData: [
    {"index":"0","nickName": "沙滩搁浅我们的旧时光", "name": "小明"},
    {"index":"1","nickName": "女人天生高贵", "name": "小红"},
    {"index":"2","nickName": "海是彩色的灰尘", "name": "小兰"}
  ]
}

}

最后实现的效果图:

如果运行时,报如下所示的错误:

这是因为Export2Excel.js的设置需要改下:

注: 把require("script-loader!vendor/Blob")改为 require("./Blob.js")

项目中实际应用案例
/导出 */

    formatJson(filterVal, jsonData) {
      // console.log(filterVal,jsonData)
        return jsonData.map(v => filterVal.map(j => {
             if(j == "xxdz"){            //..详细地址
                return v.name1 + v.name2 + v.name3 + v.gridName + v.xxdz
            }
            if(j == "qyzw"){            //..区域装维
                return v.name2 + "/" + v.yxCname
            }
            if(j == "state"){            //..工单状态
                return this.config.gzdStateList[v.state]
            }
            return v[j]
        }))
    },
    ygExcel() {
        let params = {}
        let queryForm = this.deepClone(this.queryForm)
        params.currentPage =1
        params.pageSize = this.count
        params.queryForm = queryForm
        params.prop = this.prop
        params.order = this.order
        // params.ifExport = true
        this.startLoading()
        this.$post( "/api/UserController/getList",params, (data) => {
          console.log(data)
            let tableData =data.list;
            // let tableData = data.list;
            require.ensure([], () => {
                const { export_json_to_excel } = require("../vendor/Export2Excel");
                const tHeader = this.config.ygbHeader;//在config中定义表头
                const filterVal = this.config.ygFilterVal;//在config中定义表头对应的字段
                const data = this.formatJson(filterVal, tableData);
                export_json_to_excel(tHeader, data, "员工详情表");下载是显示的表名
            })
        })
   },

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/104600.html

相关文章

  • Vue 2019开发者图谱

    摘要:为了便于您更清晰的理解的体系架构,在这里我将为您展示年开发者知识图谱,它包含了所有开发过程中的关键部分。在数据展示前端导入导出图表面板数据绑定等场景无需大量代码开发和测试,可极大节省企业研发成本并降低交付风险。 作为 Vue 的初学者,您或许已经听过很多关于它的专业术语了,例如:单页面应用程序、异步组件、服务器端呈现等,您可能还听过和Vue经常一起被提到的工具和库,如Vuex、Webp...

    cgspine 评论0 收藏0
  • 关于Vue2一些值得推荐的文章 -- 五、六月份

    摘要:五六月份推荐集合查看最新的请点击集前端最近很火的框架资源定时更新,欢迎一下。苏幕遮燎沈香宋周邦彦燎沈香,消溽暑。鸟雀呼晴,侵晓窥檐语。叶上初阳乾宿雨,水面清圆,一一风荷举。家住吴门,久作长安旅。五月渔郎相忆否。小楫轻舟,梦入芙蓉浦。 五、六月份推荐集合 查看github最新的Vue weekly;请::点击::集web前端最近很火的vue2框架资源;定时更新,欢迎 Star 一下。 苏...

    sutaking 评论0 收藏0
  • 关于Vue2一些值得推荐的文章 -- 五、六月份

    摘要:五六月份推荐集合查看最新的请点击集前端最近很火的框架资源定时更新,欢迎一下。苏幕遮燎沈香宋周邦彦燎沈香,消溽暑。鸟雀呼晴,侵晓窥檐语。叶上初阳乾宿雨,水面清圆,一一风荷举。家住吴门,久作长安旅。五月渔郎相忆否。小楫轻舟,梦入芙蓉浦。 五、六月份推荐集合 查看github最新的Vue weekly;请::点击::集web前端最近很火的vue2框架资源;定时更新,欢迎 Star 一下。 苏...

    khs1994 评论0 收藏0
  • 使用 SpreadJS 实现 JavaScript 导入和导出Excel文件

    摘要:而作为一款深受用户喜爱的电子表格工具,借助其直观的界面出色的计算性能和图表工具,已经成为数据统计领域不可或缺的软件之一。使用实现的导入和导出通过纯,您完全可以实现导入和导出文件功能,并为最终用户提供与这些文件进行交互的界面。 JavaScript是一个涵盖多种框架、直译式、可以轻松自定义客户端的脚本语言,在 Web 应用程序中,更加易于编码和维护。而Excel 作为一款深受用户喜爱的电...

    Jioby 评论0 收藏0

发表评论

0条评论

lunaticf

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<