excel 数据读取与分析

前期准备:

插件安装:

npm install node-xlsx json2xls fs

第一步:读取 excel 表格数据

const xlsx = require('node-xlsx');

const sheets = xlsx.parse('./fault.xlsx');

sheet是一个json对象,格式为{name:"测试参数",data:[]},我们想要的数据就存储在data里,sheet["data"] 可以拿到某个sheet的数据。

第二步:数据拆解分析,得到想要的结构

这步骤就开个人发挥了。我本次是想吧数据表做按名称分组。

第三步:输出 excel

const fs = require('fs');

const path = require('path');

const json2xls = require('json2xls');

let xls = json2xls(json);

fs.writeFileSync('analysis.xlsx', xls,'binary');

完成写入。很简单!!!


完整示例

const xlsx = require('node-xlsx');

const sheets = xlsx.parse('./fault.xlsx');

const fs = require('fs');

const path = require('path');

const json2xls = require('json2xls');

const writeFile = (json) => {

  let xls = json2xls(json);

  fs.writeFileSync('analysis.xlsx', xls,'binary');

}

const analysis = (sheet) => {

  let analysisArr = {} //分析后数据

  //sheet是一个json对象,格式为{name:"测试参数",data:[]},我们想要的数据就存储在data里

  for(let i=0; i<sheet["data"].length; i++){ //excel文件里的表格一般有标题所以不一定从0开始

    let row = sheet['data'][i];

    if(row){

      let customerNameArr = []; //定义一数组

      let customerName = row[1] && row[1].replace(/\s/g,'');

      customerNameArr = customerName.split(",");

      for(let j=0; j<customerNameArr.length; j++){

        if(analysisArr[customerNameArr[j]]){

          analysisArr[customerNameArr[j]]['时间'].push(new Date(1900, 0, row[0] - 1).toLocaleString().split(' ')[0]);

        }else{

          analysisArr[customerNameArr[j]] = {

            "客户": customerNameArr[j],

            "时间": [new Date(1900, 0, row[0] - 1).toLocaleString().split(' ')[0]]

          };

        }

      }

    }

  }

  //转换成 excel 的数组格式

  let formatJson = [];

  for (const key in analysisArr) {

    if (analysisArr[key]) {

      formatJson.push(analysisArr[key])

    }

  }

  return formatJson;

}

const readFile = () => {

  // 获取 excel 的 sheets 数据

  sheets.forEach(function(sheet){

    let analysisJson = analysis(sheet)

    writeFile(analysisJson)

  });

}

readFile();

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容