nodejs读取并去重excel文件


Posted in NodeJs onApril 22, 2018

如何使用,直接上代码

/**
 * 安装node-xlsx插件
 */
var path = require('path')
var fs = require('fs')
var xlsx = require('node-xlsx')

//去重算法
Array.prototype.unique = function () {
 this.sort(); //先排序
 var res = [this[0]];
 for (var i = 1; i < this.length; i++) {
  if (this[i] !== res[res.length - 1]) {
   res.push(this[i]);
  }
 }
 return res;
}

//取得xlsx
var obj = xlsx.parse(path.resolve(`./xlsx/x.xlsx`))
var newArray = []

//读取第一列
//obj[0].data:指第一个sheet的表格数据
//data内部的数据结构为:
//[[ 'field1','field2','field13' ],[ 'field1','field2','field13' ]]
for (var data of obj[0].data) {
 newArray.push(data[0])
}
//去重之前
console.log(newArray.length)
var openIds = newArray.unique();
//去重之后
console.log(newArray.length)

var j = 0
for (var i = 0; i < newArray.length; i++) {
 //每一行
 console.log(newArray[i])
}

解析一下

node-xlsx导出的数据结构如下:

//json结构 
[{
 name: 'sheet1 name',
 data: [['field1', 'field2', 'field13'],
  ['field1', 'field2', 'field13']]
},
 {
  name: 'sheet2 name',
  data: [['field1', 'field2', 'field13'],
   ['field1', 'field2', 'field13']]
 }]

以上就是小编整理的全部内容,很多时候我们用到对EXCEL的文件操作,大家在测试的时候如还有任何疑问可以在下面的留言区讨论,感谢大家对三水点靠木的支持。

NodeJs 相关文章推荐
nodejs简单实现中英文翻译
May 04 NodeJs
详解NodeJS框架express的路径映射(路由)功能及控制
Mar 24 NodeJs
nodejs个人博客开发第四步 数据模型
Apr 12 NodeJs
NodeJS 实现手机短信验证模块阿里大于功能
Jun 19 NodeJs
Nodejs+express+ejs简单使用实例代码
Sep 18 NodeJs
nodejs超出最大的调用栈错误问题
Dec 27 NodeJs
nodeJs爬虫的技术点总结
May 13 NodeJs
Mac下通过brew安装指定版本的nodejs教程
May 17 NodeJs
详解webpack打包nodejs项目(前端代码)
Sep 19 NodeJs
nodejs同步调用获取mysql数据时遇到的大坑
Mar 02 NodeJs
NodeJs 实现简单WebSocket即时通讯的示例代码
Aug 05 NodeJs
nodejs开发一个最简单的web服务器实例讲解
Jan 02 NodeJs
nodeJS模块简单用法示例
Apr 21 #NodeJs
NodeJS安装图文教程
Apr 19 #NodeJs
关于Mac下安装nodejs、npm和cnpm的教程
Apr 11 #NodeJs
详解nodejs通过响应回写的方式渲染页面资源
Apr 07 #NodeJs
原生nodejs使用websocket代码分享
Apr 07 #NodeJs
nodejs多版本管理总结
Apr 03 #NodeJs
nodejs搭建本地服务器轻松解决跨域问题
Mar 21 #NodeJs
You might like
PHP生成网页快照 不用COM不用扩展.
2010/02/11 PHP
使用GD库生成带阴影文字的图片
2015/03/27 PHP
针对thinkPHP5框架存储过程bug重写的存储过程扩展类完整实例
2018/06/16 PHP
解决thinkPHP 5 nginx 部署时,只跳转首页的问题
2019/10/16 PHP
PHP实现15位身份证号转18位的方法分析
2019/10/16 PHP
JavaScript中通过闭包解决只能取得包含函数中任何变量最后一个值的问题
2010/08/12 Javascript
IE下js调试工具Companion.JS
2010/10/15 Javascript
jQuery中append、insertBefore、after与insertAfter的简单用法与注意事项
2020/04/04 Javascript
javascript:文字不间断向左移动的实例代码
2013/08/08 Javascript
自己编写的类似JS的trim方法
2013/10/09 Javascript
js opener的使用详解
2014/01/11 Javascript
JS实现一个列表中包含上移下移删除等功能
2014/09/24 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
Javascript将JSON日期格式化
2016/08/23 Javascript
详解Vue-基本标签和自定义控件
2017/03/24 Javascript
BootStrap Table前台和后台分页对JSON格式的要求
2017/06/28 Javascript
微信小程序实现跟随菜单效果和循环嵌套加载数据
2017/11/21 Javascript
详解Vue串联过滤器的使用场景
2020/04/30 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
[33:28]完美世界DOTA2联赛PWL S3 PXG vs GXR 第三场 12.19
2020/12/24 DOTA
python win32 简单操作方法
2017/05/25 Python
python通过tcp发送xml报文的方法
2018/12/28 Python
解决flask接口返回的内容中文乱码的问题
2020/04/03 Python
Python插件机制实现详解
2020/05/04 Python
装上这 14 个插件后,PyCharm 真的是无敌的存在
2021/01/11 Python
MCM英国官网:奢侈皮具制品
2017/04/18 全球购物
健康监测猫砂:Pretty Litter
2017/05/25 全球购物
什么是makefile? 如何编写makefile?
2012/08/08 面试题
医学毕业生自我鉴定
2013/10/30 职场文书
投标担保书范文
2014/04/02 职场文书
商场促销活动总结
2014/07/10 职场文书
2014年财务工作总结与计划
2014/12/08 职场文书
打架检讨书
2015/01/27 职场文书
房产电话营销开场白
2015/05/29 职场文书
python实现局部图像放大
2021/11/17 Python
postgresql之greenplum字符串去重拼接方式
2023/05/08 PostgreSQL