nodejs剖析excel文件将效果写入excel文件

背景

由于 Team 自身事情性质的题目,日常平凡须要值班。值班数据能够导出为当地的Excel文件。以后须要对Excel中的效果数据做剖析,而且制造图表写周报发给老大。

关于我这类对word都玩不转的人,别说用Excel中壮大的公式剖析数据了?。轮到我值班的时刻就用nodejs写了一个剧本自动处置惩罚Excel中的数据,而且将数据再写入Excel文件。厥后分享给同事,得到了老大的夸耀,自信心爆棚 ?

之前仅仅为了满足事情的须要写的比较的随意,恰好国庆有时候根据CMD范例重写一下。然后分享给人人。

剧本目标

读取Excel文件,剖析Excel中的数据,而且将效果写入Excel中。

运用的第三方包

在这个历程当中运用了两个第三方的包离别以下:

require('date-utils');
var xlsx = require('node-xlsx');

运用date-utils主假如用来做一些时候上的处置惩罚。比方说时候差,当前时候向后加七天的日期。这个包异常的壮大。能够看下API:

细致的API细致文档能够参考这里:点击这里

上面的两片文档能够结合著看。

<static>这些要领扩大的是Date对象,然后面的这些要领这些用于对象的实例。实例代码以下:


//当前日期推后7天的日期
var time = '2016-10-04 14:30:24'
var nextSevenDay = (new Date(time)).add({'day':7});

//比较时候差
var temp = Date.compare(time1,time2);   //效果位数值
  1. node-xlsx重要做一些excel相干的处置惩罚

比方说读取Excel 文件:

var workExcel = xlsx.parse('xxx.xls');

比方建立excel文件对象:

var buffer = xlsx.build([{name: name, data: datalist}]);

cmd范例相干内容

假如对CMD范例不熟悉的话能够参考这里

我的剧本的目次构造以下:
《nodejs剖析excel文件将效果写入excel文件》

假如对package.json文件设置不是很熟悉的话能够参考这里

《nodejs剖析excel文件将效果写入excel文件》

重要代码剖析:

经由过程node-xlsx 读取的excel文件就是一个json数据。我们应当都晓得一个Excel文件能够包括多张表,每张表都能够治理本身的数据。

看照上面已知内容,代码以下:

//读取某个excel文件
var chatExcel = xlsx.parse('./历史记录.xls');

//猎取须要excel某个表中的数据
var tableData = excelFunc.getDataContent('历史记录', chatExcel);

//猎取当前表中猎取第一行数据,通常在excel中这一行就是每一列的title
var tableTitle = tableData[0];

在运用nodejs的历程当中能够最大的一个疑惑就是区分exportsmodule.exports吧,它们二者的重要区分以下:

《nodejs剖析excel文件将效果写入excel文件》

1. 简朴的代码示例:

一个test1.js文件,个中代码以下:


module.exports="test";

exports.fileName = function(){
    console.log('test1');
};

在test2.js文件中运用test1.js模块的要领:

var test1 = require('test1');

test1.fileName();    //TypeError: Object test! has no method 'fileName'

2. 假如模块是一个类若有一个consoleName.js的文件,个中代码以下:

module.exports=function(name){
    this.name =name;
    this.consoleName = function(){
        console.log(this.name);
    }
}

别的模块中的挪用模块的要领:

var ConsoleName = require('consoleName');
var con = new ConsoleName('zhiqiang');
con.consoleName();  //zhiqiang

3. 假如模块是一个数组,例若有一个test1.js的文件,个中的代码以下:

module.exports =['zhiqiang1','houzhiqiang'];

在别的模块的挪用要领

var arr =require('test1')
console.log(arr[1])   //houzhiqiang

《nodejs剖析excel文件将效果写入excel文件》

别的的代码就没有什么别的了,都是关于公式的存盘算的题目。假若有兴致的同砚能够接见源码看一下。源码地点

    原文作者:zhiqiang21
    原文地址: https://segmentfault.com/a/1190000007073545
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞