##使用nodejs中的node-xlsx库生成excel##最近应领导要求,从网上抓取了大量数据存入数据库,但是我妈认可了,市场妹要的是excel表格。毕竟还是要听妹子说什么(重点是语气还不错),于是上网查了些资料。但是查了查,发现很多都是复制粘贴。说实话,我真的很讨厌这种行为。无论如何,您应该先运行代码并添加一些注释。你确定你已经运行过一些人的代码吗?发到网上就是为了骗人,用各种方式浪费别人的时间。nodejs中生成excel的库有很多。经过尝试,个人认为对于简单的需求(按行添加),使用node-xlsx就足够了。1.因为属于第三方模块,所以必须是npm,然后导入。npm安装节点xlsx;npm安装fs2。在代码中引入模块;constxlsx=require('node-xlsx')//引入模块import*asfsfrom'fs'3.下面关键代码;数据填充sqlite。queryData("select*frompersonInfo",(rows)=>{//rows是从数据库中读取的一个数组,大家把它当成一个普通的数组就好了letdata=[]//其实最后一个就是把这个数组写入excellettitle=['id','name','address','fansCount','tag','label','price0','price1']//这是第一行俗称列名data.push(title)//添加列名后,才添加真正的内容rows.forEach((element)=>{letarrInner=[]arrInner.push(element.id)arrInner.推(元素名称)arrInner.push(元素地址)arrInner.push(element.fansCount)arrInner.push(元素标签)arrInner.push(元素标签)arrInner.push(element.price0)arrInner.push(element.price1)data.push(arrInner)//如果加入的数据是数组,可以将对象的值分解加入到数组中,例如:['1','name','上海']});this.writeXls(data)})先说标题。这个数组就是excel中的第一行数据,也就是列名。它用于描述。让我在上图中解释一下!【就是表头】表头说完了,下面插入数据,简单说明,这个数据是一个二维数组,里面的每个数组代表一行数据,所以添加的时候一定要对应.每个添加的数组长度必须相同(一定要在data中添加一个数组,切记)你添加几个数组,生成的excel中会有多少行数据,如果上面的rows数组的长度是3then我生成的excel中的内容数据是三行(这里你看懂了吗,表达不好,好着急)。当我们填好数据填充数据后,我们就开始下一步生成excel。2.生成excel,先上传代码privatewriteXls(datas){letbuffer=xlsx.build([{name:'sheet1',data:datas}]);fs.writeFileSync('./the_content.xlsx',buffer,{'flag':'w'});//生成excelthe_content是excel的名字,随便起什么名字}这些是API,我相信没什么好说的,这就是生成excel的简单操作备注:这是Nodejs操作文件,不熟悉的人可能会中招。nodejs是后台系统,有修改文件的权限。与浏览器不同,浏览器默认没有修改文件的权限。想一想,你正在打开浏览器。它会修改你电脑里的所有内容,或者偷偷上传。这是一件很可怕的事情,所以浏览器的功能还是受到了很多限制。以前做安卓代很麻烦,现在真的很感谢用nodejs很爽。喜欢就点赞评论吧,作者第一篇真正意义上的博客。
