资讯专栏INFORMATION COLUMN

nodejs分析excel文件将结果写入excel文件

Alan / 3080人阅读

摘要:之后需要对中的结果数据做分析,并且制作图表写周报发给老大。轮到我值班的时候就用写了一个脚本自动处理中的数据,并且将数据再写入文件。脚本目的读取文件,分析中的数据,并且将结果写入中。

背景

因为 Team 本身工作性质的问题,平时需要值班。值班数据可以导出为本地的Excel文件。之后需要对Excel中的结果数据做分析,并且制作图表写周报发给老大。

对于我这种对word都玩不转的人,别说用Excel中强大的公式分析数据了?。轮到我值班的时候就用nodejs写了一个脚本自动处理Excel中的数据,并且将数据再写入Excel文件。后来分享给同事,得到了老大的夸奖,自信心爆棚 ?

之前仅仅为了满足工作的需要写的比较的随便,刚好国庆有时间按照CMD规范重写一下。然后分享给大家。

脚本目的

读取Excel文件,分析Excel中的数据,并且将结果写入Excel中。

使用的第三方包

在这个过程中使用了两个第三方的包分别如下:

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

使用date-utils主要是用来做一些时间上的处理。比如说时间差,当前时间向后加七天的日期。这个包非常的强大。可以看下API:

具体的API详细文档可以参考这里:点击这里

上面的两片文档可以结合着看。

这些方法扩展的是Date对象,而后面的这些方法这些用于对象的实例。实例代码如下:

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

//比较时间差
var temp = Date.compare(time1,time2);   //结果位数值

node-xlsx主要做一些excel相关的处理

比如说读取Excel 文件:

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

比如创建excel文件对象:

var buffer = xlsx.build([{name: name, data: datalist}]);
cmd规范相关内容

如果对CMD规范不熟悉的话可以参考这里

我的脚本的目录结构如下:

如果对package.json文件配置不是很熟悉的话可以参考这里

主要代码解析:

通过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吧,它们两者的主要区别如下:

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

其它的代码就没有什么别的了,都是关于公式的存计算的问题。如果有兴趣的同学可以访问源码看一下。源码地址

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/80601.html

相关文章

  • 从零开始使用node读取txt处理后导出excel

    摘要:安装执行版本号,例如以下语句可以安装几的版本好像在墙内只能找到以前的版本使用可以查看现有的版本,可以支持模糊切换。 一直说要好好学习,总结知识什么的。一直觉得没有时间。周一终于提交了论文盲审。决定从今天每周都总结一次自己的所学。希望自己能坚持。 任务描述: 一个医学系的同学要分析一个叫TCGA的数据库,每个实验文件是txt,格式如下: hsa-miR-1228* 5.185500...

    frank_fun 评论0 收藏0
  • nodejs使用node-xlsx生成excel

    摘要:使用中库进行的生成操作近日,应领导要求,从网上抓了一大批数据存入了数据库,可是妈妈批,市场妹子要的是表格啊,毕竟妹子的话还是要听的关键人家语气蛮好的,就从网上查一些资料。 ## 使用nodejs中node-xlsx库进行excel的生成操作 ## 近日,应领导要求,从网上抓了一大批数据存入了数据库,可是妈妈批 ,市场妹子要的是excel表格啊,毕竟妹子的话还是要听的(关键人家语气蛮好的...

    zr_hebo 评论0 收藏0
  • java 导出 excel 最佳实践,java 大文件 excel 避免OOM(内存溢出) exce

    摘要:消费之后,多线程处理文件导出,生成文件后上传到等文件服务器。前端直接查询并且展现对应的任务执行列表,去等文件服务器下载文件即可。这客户体验不友好,而且网络传输,系统占用多种问题。拓展阅读导出最佳实践框架 产品需求 产品经理需要导出一个页面的所有的信息到 EXCEL 文件。 需求分析 对于 excel 导出,是一个很常见的需求。 最常见的解决方案就是使用 poi 直接同步导出一个 exc...

    K_B_Z 评论0 收藏0
  • 用 python 做数据分析:pandas 的 excel 应用初探

    摘要:今天要分享的是,用来写。数据处理环节效率低下,易受干扰。问题排查难以溯源。一旦数据报告有误,想要定位问题所在,常常需要从头开始复盘。结果和上面结果结构是一致的。这是官网的文档,但是却不完全适用目前的场景。 大毛 岂安科技业务风险分析师 多年订单业务反欺诈经验,负责岂安科技多款产品运营工作。 上回笔者分享过一些 pandas 的常用数据查询语法,但是数据查询对于 pandas 而言只是冰...

    aervon 评论0 收藏0

发表评论

0条评论

Alan

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<