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读取memcache示例分享
Jan 02 NodeJs
进阶之初探nodeJS
Jan 24 NodeJs
nodejs 终端打印进度条实例代码
Apr 22 NodeJs
ajax +NodeJS 实现图片上传实例
Jun 06 NodeJs
Nodejs中使用phantom将html转为pdf或图片格式的方法
Sep 18 NodeJs
nodejs基于WS模块实现WebSocket聊天功能的方法
Jan 12 NodeJs
nodejs基于express实现文件上传的方法
Mar 19 NodeJs
nodejs 日志模块winston的使用方法
May 02 NodeJs
nodejs文件夹深层复制功能
Sep 03 NodeJs
nodejs dgram模块广播+组播的实现示例
Nov 04 NodeJs
Nodejs + sequelize 实现增删改查操作
Nov 07 NodeJs
NodeJS模块Buffer原理及使用方法解析
Nov 11 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
杏林同学录(六)
2006/10/09 PHP
PHP 5.0 Pear安装方法
2006/12/06 PHP
Linux下 php5 MySQL5 Apache2 phpMyAdmin ZendOptimizer安装与配置[图文]
2008/11/18 PHP
hadoop常见错误以及处理方法详解
2013/06/19 PHP
自制PHP框架之路由与控制器
2017/05/07 PHP
PHP学习笔记之session
2018/05/06 PHP
PHP如何使用array_unshift()在数组开头插入元素
2020/09/01 PHP
JavaScript 字符串乘法
2009/08/20 Javascript
在百度知道团队中快速审批新成员的js脚本
2014/02/02 Javascript
用JS在浏览器中创建下载文件
2014/03/05 Javascript
JQuery 的跨域方法推荐_可跨任何网站
2016/05/18 Javascript
详解AngularJS验证、过滤器、指令
2017/01/04 Javascript
jquery ajaxfileupload异步上传插件使用详解
2017/02/08 Javascript
jquery仿ps颜色拾取功能
2017/03/08 Javascript
vue.js数据绑定的方法(单向、双向和一次性绑定)
2017/07/13 Javascript
浅析前端路由简介以及vue-router实现原理
2018/06/01 Javascript
Vue实现textarea固定输入行数与添加下划线样式的思路详解
2018/06/28 Javascript
vue-cli 3.0 自定义vue.config.js文件,多页构建的方法
2018/09/19 Javascript
微信小程序实现预览图片功能
2020/10/22 Javascript
基于JS+HTML实现弹窗提示是否确认提交功能
2020/06/17 Javascript
javascript实现移动端红包雨页面
2020/06/23 Javascript
vue 动态创建组件的两种方法
2020/12/31 Vue.js
[04:51]TI10典藏宝瓶Ⅱ外观视频展示
2020/08/15 DOTA
Python查询阿里巴巴关键字排名的方法
2015/07/08 Python
浅谈django中的认证与登录
2016/10/31 Python
python实现数据预处理之填充缺失值的示例
2017/12/22 Python
基于Python实现船舶的MMSI的获取(推荐)
2019/10/21 Python
增大python字体的方法步骤
2020/07/05 Python
动态密码技术
2012/10/18 面试题
纪检干部现实表现材料
2014/08/21 职场文书
民政局副局长民主生活会个人对照检查材料
2014/09/19 职场文书
2014年乡镇民政工作总结
2014/12/02 职场文书
办公室岗位职责
2015/02/04 职场文书
社区禁毒宣传活动总结
2015/05/07 职场文书
2015年医务科工作总结范文
2015/05/26 职场文书
springboot layui hutool Excel导入的实现
2022/03/31 Java/Android