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中调用系统命令、Shell脚本和Python脚本的方法和实例
Jan 01 NodeJs
Windows系统下使用Sublime搭建nodejs环境
Apr 13 NodeJs
nodeJs内存泄漏问题详解
Sep 05 NodeJs
Nodejs高扩展性的模板引擎 functmpl简介
Feb 13 NodeJs
nodejs+websocket实时聊天系统改进版
May 18 NodeJs
深入学习nodejs中的async模块的使用方法
Jul 12 NodeJs
NodeJS简单实现WebSocket功能示例
Feb 10 NodeJs
nodejs实现解析xml字符串为对象的方法示例
Mar 14 NodeJs
nodejs更新package.json中的dependencies依赖到最新版本的方法
Oct 10 NodeJs
NodeJS服务器实现gzip压缩的示例代码
Oct 12 NodeJs
nodejs微信开发之接入指南
Mar 17 NodeJs
Nodejs监控事件循环异常示例详解
Sep 22 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中的字符串函数
2006/11/24 PHP
默默小谈PHP&amp;MYSQL分页原理及实现
2007/01/02 PHP
php实现汉字验证码和算式验证码的方法
2015/03/07 PHP
PHP模板引擎Smarty内置变量调解器用法详解
2016/04/11 PHP
PHP数组函数知识汇总
2016/05/12 PHP
微信公众平台开发教程④ ThinkPHP框架下微信支付功能图文详解
2019/04/10 PHP
PHP文件类型检查及fileinfo模块安装使用详解
2019/05/09 PHP
锋利的jQuery 第三章章节总结的例子
2010/03/23 Javascript
关于JS判断图片是否加载完成且获取图片宽度的方法
2013/04/09 Javascript
一个JS的日期格式化算法示例
2013/07/31 Javascript
JS过滤url参数特殊字符的实现方法
2013/12/24 Javascript
Bootstrap每天必学之栅格系统(布局)
2015/11/25 Javascript
JAVASCRIPT代码编写俄罗斯方块网页版
2015/11/26 Javascript
Jquery实现select multiple左右添加和删除功能的简单实例
2016/05/26 Javascript
全面解析JavaScript里的循环方法之forEach,for-in,for-of
2020/04/20 Javascript
有关文件上传 非ajax提交 得到后台数据问题
2016/10/12 Javascript
BootStrap 标题设置跨行无效的解决方法
2017/10/25 Javascript
jQuery中的for循环var与let的区别
2018/04/21 jQuery
[58:21]DOTA2亚洲邀请赛 4.3 突围赛 Liquid vs VGJ.T 第二场
2018/04/04 DOTA
Python网络爬虫出现乱码问题的解决方法
2017/01/05 Python
Python快速排序算法实例分析
2017/11/29 Python
JavaScript实现一维数组转化为二维数组
2018/04/17 Python
pandas的qcut()方法详解
2019/07/06 Python
python构造函数init实例方法解析
2020/01/19 Python
Python基于template实现字符串替换
2020/11/27 Python
美国领先的医疗警报服务:Philips Lifeline
2018/03/12 全球购物
Cotton On南非:澳洲时尚平价品牌
2018/06/28 全球购物
介绍一下.net和Java的特点和区别
2012/09/26 面试题
幼儿园教师培训方案
2014/02/04 职场文书
工程采购员岗位职责
2014/03/09 职场文书
全国优秀教师事迹材料
2014/08/26 职场文书
投诉书范文
2015/07/02 职场文书
python使用pywinauto驱动微信客户端实现公众号爬虫
2021/05/19 Python
django 认证类配置实现
2021/11/11 Python
使用Bandicam录制鼠标指针并附带点击声音,还可以添加点击动画效果
2022/04/11 数码科技
Java 定时任务技术趋势简介
2022/05/04 Java/Android