node.js生成Excel文件 使用node-xlsx

node.js生成Excel文件

简介

尝试使用excel-export以及excel-export-next没有成功,转为使用node-xlsx成功生成Excel

从接到需求开始查询可用的库
好多博客建议excel-export易用性高,上手简单
但是我在使用中出现莫名问题,无奈放弃,转用node-xlsx
下面说一下使用过程及成功示例代码

excel-export
github地址

https://github.com/functionscope/Node-Excel-Export

导入excel-export库很顺利,但是在js文件中引用后,项目就跑不起来了

var nodeExcel = require('excel-export');

在这里插入图片描述
到github上看了一下,最近的更新都是四年前的,复制博客的还在推荐,issues中也有人提到了不要再使用了,并且已经说明可以移到Node-Excel-Export-Next

https://github.com/somewind/Node-Excel-Export-Next

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
excel-export-next
同样正常导包,js正常引用后项目就跑不起来了

var nodeExcel = require('excel-export-next');

就这一行代码,就跑不起来了,不知道为啥

重点写一下成功案例
node-xlsx

npm install node-xlsx --save

安装库成功
在这里插入图片描述
js引用

var nodexlsx = require('node-xlsx').default;

在这里插入图片描述
目标表格数据如图
在这里插入图片描述
首先说一下数据构成data,data是一个二维数组就是如data = [ [ ] , [ ] , [ ] ];每一个数组代表一行的数据,直接上代码

var data = [];
var title = ['姓名','性别','联系电话','身份证号'];
//获取数据库数据
//var result = [];
//results = getresult();
var results = [
	{
		'name':'张三',
		'gender':'女',
		'mobile':'18888888888',
		'idcard':'110000000000000000'
	},
		{
		'name':'李四',
		'gender':'男',
		'mobile':'18888888888',
		'idcard':'110000000000000000'
	},
		{
		'name':'王五',
		'gender':'女',
		'mobile':'18888888888',
		'idcard':'110000000000000000'
	}
];
//先把title加到data
data.push(title);
//再把每一行数据加进去
results.forEach(function(result){
	var ele = [];
	ele.push(result.name);
	ele.push(result.gender);
	ele.push(result.mobile);
	ele.push(result.idCard);
	data.push(ele);
});
//由于各列数据长度不同,可以设置一下列宽
 const options = {'!cols': [{ wch: 10 }, { wch: 5 }, { wch: 15 }, { wch: 20 } ]};
//生成表格
var buffer = nodexlsx.build([{name:'sheet1',data:data }], options);
var filePath = './tmp/text1.xlsx';
fs.writeFileSync(filePath,buffer,{'flag':'w'});//

执行方法查看
在这里插入图片描述
在这里插入图片描述
这样就成功生成Excel啦

  • 2
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 2
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值