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 var变量隐式声明方法
Oct 19 Javascript
在jQuery中 关于json空对象筛选替换
Apr 15 Javascript
js给页面加style无效果的解决方法
Jan 20 Javascript
js和jquery中循环的退出和继续学习记录
Sep 06 Javascript
基于Css3和JQuery实现打字机效果
Aug 11 Javascript
Jquery揭秘系列:ajax原生js实现详解(推荐)
Jun 08 Javascript
jQuery实现扑克正反面翻牌效果
Mar 10 Javascript
jquery+css实现简单的图片轮播效果
Aug 07 jQuery
微信小程序实现无限滚动列表
May 29 Javascript
Vue动态修改网页标题的方法及遇到问题
Jun 09 Javascript
微信小程序实现单个卡片左滑显示按钮并防止上下滑动干扰功能
Dec 06 Javascript
Vue ​v-model相关知识总结
Jan 28 Vue.js
使用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
通过html表格发电子邮件
2006/10/09 PHP
PHP 开源框架22个简单简介
2009/08/24 PHP
php如何调用webservice应用介绍
2012/11/24 PHP
验证坐标在某坐标区域内php代码
2016/10/08 PHP
tbody元素支持嵌套的注意方法
2007/03/24 Javascript
javascript之卸载鼠标事件的代码
2007/05/14 Javascript
基于jquery的返回顶部效果(兼容IE6)
2011/01/17 Javascript
javascript学习(一)构建自己的JS库
2013/01/02 Javascript
jquery三个关闭弹出层的小示例
2013/11/05 Javascript
跟我学Node.js(四)---Node.js的模块载入方式与机制
2014/06/04 Javascript
JavaScript学习笔记之Function对象
2015/01/22 Javascript
jquery 设置style:display的方法
2015/01/29 Javascript
PHP+jQuery实现随意拖动层并即时保存拖动位置
2015/04/30 Javascript
浅析Node.js 中 Stream API 的使用
2015/10/23 Javascript
javascript图片切换综合实例(循环切换、顺序切换)
2016/01/13 Javascript
用JS写的一个Ajax库(实例代码)
2016/08/06 Javascript
微信小程序实现瀑布流布局与无限加载的方法详解
2017/05/12 Javascript
js截取字符串功能的实现方法
2017/09/27 Javascript
JS实现键值对遍历json数组功能示例
2018/05/30 Javascript
RxJS的入门指引和初步应用
2019/06/15 Javascript
Javascript 对象(object)合并操作实例分析
2019/07/30 Javascript
Django中的CBV和FBV示例介绍
2018/02/25 Python
python flask实现分页的示例代码
2018/08/02 Python
Python二维数组实现求出3*3矩阵对角线元素的和示例
2019/11/29 Python
在TensorFlow中屏蔽warning的方式
2020/02/04 Python
TensorFlow加载模型时出错的解决方式
2020/02/06 Python
解析html5 canvas实现背景鼠标连线动态效果代码
2019/06/17 HTML / CSS
房地产销售经理岗位职责
2014/01/01 职场文书
法律专业学生的自我评价
2014/02/07 职场文书
2014年大学庆元旦迎新年活动方案
2014/03/09 职场文书
申报材料格式
2014/12/30 职场文书
保险公司客户经理岗位职责
2015/04/09 职场文书
故意杀人罪辩护词
2015/05/21 职场文书
先进个人主要事迹范文
2015/11/04 职场文书
详解TS数字分隔符和更严格的类属性检查
2021/05/06 Javascript
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫