nodejs读取并去重excel文件

 更新时间:2018年04月22日 14:12:14   投稿:laozhang  
给大家带来一篇关于用nodejs实现excel文件的读取并去重的功能,有兴趣的朋友参考学习下。

如何使用,直接上代码

/**
 * 安装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全局事件总线你了解吗

    这篇文章主要为大家详细介绍了Vue全局事件总线,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下,希望能够给你带来帮助
    2022-02-02
  • 如何在基于vue-cli的项目自定义打包环境

    如何在基于vue-cli的项目自定义打包环境

    本篇文章主要介绍了在基于vue-cli的项目自定义打包环境,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-11-11
  • Vue父子组件传值的三种方法

    Vue父子组件传值的三种方法

    这篇文章主要介绍了Vue父子组件传值的三种方法,本文结合示例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2022-12-12
  • 解决nuxt 自定义全局方法,全局属性,全局变量的问题

    解决nuxt 自定义全局方法,全局属性,全局变量的问题

    这篇文章主要介绍了解决nuxt 自定义全局方法,全局属性,全局变量的问题,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2020-11-11
  • vue中动态绑定表单元素的属性方法

    vue中动态绑定表单元素的属性方法

    下面小编就为大家分享一篇vue中动态绑定表单元素的属性方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-02-02
  • vue3项目中配置sass,vite报错Undefined mixin问题

    vue3项目中配置sass,vite报错Undefined mixin问题

    这篇文章主要介绍了vue3项目中配置sass,vite报错Undefined mixin问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-02-02
  • vue.js Router嵌套路由

    vue.js Router嵌套路由

    这篇文章主要介绍vue.js Router嵌套路由,平时访问首页,里面有新闻类的/home/news,还有信息类的/home/message这时候就需要使用到嵌套路由,下面我们就来具体学习嵌套路由的原理,需要的朋友可以参考一下
    2021-10-10
  • vue中el-table多层级嵌套的具体实现

    vue中el-table多层级嵌套的具体实现

    本文主要介绍了vue中el-table多层级嵌套的具体实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-10-10
  • VeeValidate在vue项目里表单校验应用案例

    VeeValidate在vue项目里表单校验应用案例

    这篇文章主要介绍了VeeValidate在vue项目里表单校验应用案例,VeeValidate是Vue.js的验证库,它有很多验证规则,并支持自定义规则,非常具有实用价值,需要的朋友可以参考下
    2018-05-05
  • Vue Echarts简易实现仪表盘

    Vue Echarts简易实现仪表盘

    这篇文章主要为大家详细介绍了Vue Echarts实现仪表盘案例,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-12-12

最新评论