ejsExcel模板在Vue.js项目中的实际运用


Posted in Javascript onJanuary 27, 2018

什么是ejsExcel?

ejsExcel是一款国人开发的、在Node.js应用程序中使用我们预先设置好的Excel模板导出Excel表格的模板引擎。

Excel模板

ejsExcel模板在Vue.js项目中的实际运用

导出后

ejsExcel模板在Vue.js项目中的实际运用

Github地址

ejsExcel

如果因为众(ni)所(dong)周(de)知的原因打不开github,没有关系,它的语法很简单,都是一些对Excel模板格式的定义:

ejsExcel模板在Vue.js项目中的实际运用

这篇文章是我在工作中因为业务需要,用到了ejsExcel这个模板引擎,觉得很不错,但是坑也不少。而网上相关的资料又太少,所以趁此机会总结了一下我的踩坑经历。
我是在Vue.js这个前端框架中用到的ejsExcel,由于我本人并不是专业做前端开发的,我会尽量的说清楚,如果有些地方写的不是太专业的话,还请见谅!

第一步:安装ejsExcel

npm install ejsexcel

安装完依赖包之后是放在xxx/node_modules/ejsexcel目录下的,核心文件是ejsExcel.js,所以如果想要使用该模板引擎,必须引入该文件:

import Excel from 'exceljs'

踩坑一:

安装完之后,官方是给了一个测试案例的,放在ejsexcel/test目录下,我建议初学者先不要放在实际项目中使用,自己先另开一个进程运行一下测试案例。
在github中,作者给出方法是在test目录下运行test.bat这个文件,经过我实际的测试,该命令在windows系统中,需要使用

node test.bat

命令才可以运行成功,而在Mac中,是运行不了的。

如果要在Mac端运行,使用

node testExcel.js

运行即可。

测试案例很简单,当你看懂测试案例是如何运作的之后剩下的就没有问题了,没看懂的也没关系,以我们上面运行的testExcel.js为例:

ejsExcel模板在Vue.js项目中的实际运用

怎么样,很简单吧!

第二步:编写模板

根据自己的业务逻辑,将你要导出的数据按照上面的语法在Excel中写好,这一步不难,只是有点烦,需要你有点耐心。

编写好模板之后,可以将它放到你的项目中去,具体放在哪里随便你,但是最好不要离核心代码太远,毕竟我们在渲染数据时是需要读取模板路径的,放的路径太深,麻烦的还是自己。

第三步:获取数据源

test中的测试例子,都是一些假数据,但是在实际的开发中我们需要根据需求,动态的获取数据和导出数据。

我的做法是将核心文件的引入、数据的获取、Excel模板的渲染分装成三个部分。然后再使用export default导出这些方法,使其可以被全局调用。

ejsExcel模板在Vue.js项目中的实际运用

在Vue中,我做了一个导出按钮,当点击这个button时,触发方法,去获取我们data{}中的数据,获取到数据后作为参数,传入我们封装好的数据源方法中

ejsExcel模板在Vue.js项目中的实际运用

然后在getMachiningData方法中获取参数,并格式化。

ejsExcel模板在Vue.js项目中的实际运用

第四步:使用数据渲染模板

再调用renderDataUseTemp方法,将格式化好的数据传入,进行数据的渲染:

ejsExcel模板在Vue.js项目中的实际运用

保存的路径是你自己定的,你也可以自己写一个方法,动态的选择文件渲染好之后的存储路径。

大概就是这么多,业务逻辑方面其实不难,可能就是在制作Excel模板时需要一点耐心和细心。
上面的这些都是我自己在项目中的代码,请千万不要局限于我写的代码,思路最重要,要根据实际情况来处理业务。只要思路理清了,问题就解决一大半了。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Javascript 相关文章推荐
javascript 延迟加载技术(lazyload)简单实现
Jan 17 Javascript
基于JavaScript实现继承机制之构造函数方法对象冒充的使用详解
May 07 Javascript
js控制table合并具体实现
Feb 20 Javascript
一个html5播放视频的video控件只支持android的默认格式mp4和3gp
May 08 Javascript
JavaScript中使用sencha gridpanel 编辑单元格、改变单元格颜色
Nov 26 Javascript
jQuery自定义滚动条完整实例
Jan 08 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
May 10 Javascript
jquery过滤特殊字符',防sql注入的实现方法
Aug 17 Javascript
详解angular2封装material2对话框组件
Mar 03 Javascript
Vue项目vscode 安装eslint插件的方法(代码自动修复)
Apr 15 Javascript
微信小程序返回上一级页面的实现代码
Jun 19 Javascript
Vue ElementUI实现:限制输入框只能输入正整数的问题
Jul 31 Javascript
使用D3.js创建物流地图的示例代码
Jan 27 #Javascript
javascript获取图片的top N主色值方法详解
Jan 26 #Javascript
Vue中render方法的使用详解
Jan 26 #Javascript
Angular利用trackBy提升性能的方法
Jan 26 #Javascript
微信小程序版翻牌小游戏
Jan 26 #Javascript
基于百度地图api清除指定覆盖物(Overlay)的方法
Jan 26 #Javascript
微信小程序wx.getImageInfo()如何获取图片信息
Jan 26 #Javascript
You might like
使用php+xslt在windows平台上
2006/10/09 PHP
深入PHP中慎用双等于(==)的详解
2013/06/06 PHP
PHP快速按行读取CSV大文件的封装类分享(也适用于其它超大文本文件)
2014/04/10 PHP
php header函数的常用http头设置
2015/06/25 PHP
Zend Framework教程之Zend_Db_Table_Row用法实例分析
2016/03/21 PHP
Laravel Memcached缓存驱动的配置与应用方法分析
2016/10/08 PHP
一起来写段JS drag拖动代码
2010/12/09 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
AngularJS实现分页显示数据库信息
2016/07/01 Javascript
最常见的左侧分类菜单栏jQuery实现代码
2016/11/28 Javascript
JavaScript变量作用域_动力节点Java学院整理
2017/06/27 Javascript
layui 给数据表格加序号的方法
2018/08/20 Javascript
React父子组件间的传值的方法
2018/11/13 Javascript
微信小程序实现圆形进度条动画
2020/11/18 Javascript
javascript中的闭包概念与用法实践分析
2019/07/26 Javascript
vue项目从node8.x升级到12.x后的问题解决
2019/10/25 Javascript
[01:13:08]2018DOTA2亚洲邀请赛4.6 淘汰赛 mineski vs LGD 第二场
2018/04/10 DOTA
python实现带验证码网站的自动登陆实现代码
2015/01/12 Python
python中requests小技巧
2017/05/10 Python
Python3 加密(hashlib和hmac)模块的实现
2017/11/23 Python
python版本的仿windows计划任务工具
2018/04/30 Python
Python 绘制酷炫的三维图步骤详解
2019/07/12 Python
Python 实现递归法解决迷宫问题的示例代码
2020/01/12 Python
Python脚本导出为exe程序的方法
2020/03/25 Python
Python利用for循环打印星号三角形的案例
2020/04/12 Python
详解基于canvas的视频遮罩插件
2018/01/04 HTML / CSS
美国最流行的男士时尚网站:Touch of Modern
2018/02/05 全球购物
俄罗斯购买剧院和演唱会门票网站:Parter.ru
2019/11/09 全球购物
大四自我鉴定
2014/02/08 职场文书
电子商务专业应届毕业生求职信
2014/06/21 职场文书
婚礼父母答谢词
2015/01/04 职场文书
技术员岗位职责
2015/02/04 职场文书
幼儿园教师工作总结2015
2015/04/02 职场文书
房屋租赁意向书范本
2015/05/09 职场文书
导游词之泰山玉皇顶
2019/12/23 职场文书
Python first-order-model实现让照片动起来
2022/06/25 Python