nodejs 讀取excel檔案,並去重

Miracle_lihb發表於2019-02-16

為什麼npm釋出的很多包文件這麼爛

如何使用,直接上程式碼

/**
 * 安裝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`]]
  }]

相關文章