摘要:使用中库进行的生成操作近日,应领导要求,从网上抓了一大批数据存入了数据库,可是妈妈批,市场妹子要的是表格啊,毕竟妹子的话还是要听的关键人家语气蛮好的,就从网上查一些资料。
## 使用nodejs中node-xlsx库进行excel的生成操作 ##
近日,应领导要求,从网上抓了一大批数据存入了数据库,可是妈妈批 ,市场妹子要的是excel表格啊,毕竟妹子的话还是要听的(关键人家语气蛮好的),就从网上查一些资料。可是查来查去发现很多都是复制粘贴,说实话真的讨厌这样行为,代码好歹你自己先跑跑,加点注释,有些人的代码你确定你自己跑过? 就发到网上坑人,各种耽误别人的时间。
nodejs中生成excel的库很多,在尝试后,个人认为对于简单的需求(按行添加),使用node-xlsx就足够了。
1.因为属于第三方模块,所以肯定要npm一下,然后引入。
npm install node-xlsx; npm install fs
2.在代码中引入模块;
const xlsx = require("node-xlsx")//引入模块 import * as fs from "fs"
3.下面上关键代码;
数据填充 sqlite.queryData("select * from personInfo",(rows)=>{ //rows是个从数据库里面读出来的数组,大家就把他当成一个普通的数组就ok let data = [] // 其实最后就是把这个数组写入excel let title = ["id","name","address","fansCount","tag","label","price0","price1"]//这是第一行 俗称列名 data.push(title) // 添加完列名 下面就是添加真正的内容了 rows.forEach((element) => { let arrInner = [] arrInner.push(element.id) arrInner.push(element.name) arrInner.push(element.address) arrInner.push(element.fansCount) arrInner.push(element.tag) arrInner.push(element.label) arrInner.push(element.price0) arrInner.push(element.price1) data.push(arrInner)//data中添加的要是数组,可以将对象的值分解添加进数组,例如:["1","name","上海"] }); this.writeXls(data) }) 先说一下title 这个数组就是excel中的第一行数据,就是列名,用来描述的。算了,我还是上图解释吧 ![就是表头]
表头完了,下面插入数据,
简单的解释,这个data是个二维数组,它里面的每个数组代表着一行的数据,所以大家添加的时候一定要对应上。添加的每个数组长度要 相同(data中一定要添加数组啊,切记) 你添加了几个数组,在生成的excel中内容就会有多少行的数据,假如我上面的rows数组长度是3那么我生成的excel中内容的数据就是三 行(说到这里大家明白了吗,表述不行,急死我了)。 当我们把data填充数据填充完毕后,就开始下一步,进行excel的生成。
2.生成excel
先上代码 private writeXls(datas) { let buffer = xlsx.build([ { name:"sheet1", data:datas } ]); fs.writeFileSync("./the_content.xlsx",buffer,{"flag":"w"});//生成excel the_content是excel的名字,大家可以随意命名 } 这些都是api,相信也没什么好说的了,这就是简单的生成excel的操作了
备注:
这是nodejs操作文件,可能有些不熟悉的会入坑,nodejs是个后台系统,他是有权限修改文件的,不像浏览器,浏览器是无权默认修改文件的,你想想你正在打开浏览器,它就把你的电脑里的内容都修改没了,或者偷偷上传这是多么可怕的事情,所以浏览器的功能还是被限制了很多很多的,以前做安卓生成这些也是麻烦的很,现在真的该感谢一下nodejs用的很爽。喜欢的话,请点赞评论哦 ,作者真正意义的第一篇博客。
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/106830.html
摘要:支持读写的模块基于解析文件数据及生成文件,仅支持格式文件基于解析文件数据,支持及格式文件基于将数据生成导出文件,生成文件格式为基于从文件中提取数据,仅支持格式文件。代码如下读取文件内容将文件内容插入新的文件中 支持读写Excel的node.js模块node-xlsx: 基于Node.js解析excel文件数据及生成excel文件,仅支持xlsx格式文件;excel-parser: 基于...
摘要:起因运营人员需要将后台的表格导出成,由于后端的同学忙于其他事情,想着是不是可以自己做一个服务来生成。另外再搭配就可以提供一个允许跨域请求的服务。这样一个简单的接口就写完了,只要调用传入和就可以生成文档。 起因 运营人员需要将后台的表格导出成Excel,由于后端的同学忙于其他事情,想着是不是可以自己做一个服务来生成。了解到有node-xlsx这样的工具以后就开工了。 框架 后台选用了ko...
摘要:之后需要对中的结果数据做分析,并且制作图表写周报发给老大。轮到我值班的时候就用写了一个脚本自动处理中的数据,并且将数据再写入文件。脚本目的读取文件,分析中的数据,并且将结果写入中。 背景 因为 Team 本身工作性质的问题,平时需要值班。值班数据可以导出为本地的Excel文件。之后需要对Excel中的结果数据做分析,并且制作图表写周报发给老大。 对于我这种对word都玩不转的人,别说用...
摘要:或者可以更加傻瓜一点,把过程写到一个回调函数中的请求或者原生的的方法,这样产品访问某一个就可以自动生成页面了。又或者终极一点,把上线过程也写到回调函数中,这样便实现了从到线上页面的全部自动化,整个过程对产品人员完全不可见。 专题页面通常是一些为了当时的活动而做的一些短期的页面,有的专题,仅仅是一些说明信息,没有过多的链接,此时直接切大图就可以完成。而有一些专题是为了推广自家或者其他方的...
摘要:写入新的文件完成合并完整代码文件夹路径把要合并的文件放在文件夹内提交成绩开始合并表格内部字段不一致,请检查后再合并。 简述需求 我们在用Excel表格的时候经常需要合并数据,比如统计整个年级的数据的时候,需要合并每个班成绩的时候,这就需要一个快速将很多张数据类型相同表合并的组件 showImg(https://segmentfault.com/img/remote/1460000019...
阅读 1695·2021-11-11 11:02
阅读 1654·2021-09-22 15:55
阅读 2410·2021-09-22 15:18
阅读 3453·2019-08-29 11:26
阅读 3653·2019-08-26 13:43
阅读 2595·2019-08-26 13:32
阅读 862·2019-08-26 10:55
阅读 929·2019-08-26 10:27