网络编程 
首页 > 网络编程 > 浏览文章

nodejs读取并去重excel文件

(编辑:jimmy 日期: 2025/3/20 浏览:3 次 )

如何使用,直接上代码

/**
 * 安装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的文件操作,大家在测试的时候如还有任何疑问可以在下面的留言区讨论,感谢大家对的支持。

上一篇:vue移动端实现下拉刷新
下一篇:实例讲解Vue.js中router传参
一句话新闻
高通与谷歌联手!首款骁龙PC优化Chrome浏览器发布
高通和谷歌日前宣布,推出首次面向搭载骁龙的Windows PC的优化版Chrome浏览器。
在对骁龙X Elite参考设计的初步测试中,全新的Chrome浏览器在Speedometer 2.1基准测试中实现了显著的性能提升。
预计在2024年年中之前,搭载骁龙X Elite计算平台的PC将面世。该浏览器的提前问世,有助于骁龙PC问世就获得满血表现。
谷歌高级副总裁Hiroshi Lockheimer表示,此次与高通的合作将有助于确保Chrome用户在当前ARM兼容的PC上获得最佳的浏览体验。