摘要:之后需要對(duì)中的結(jié)果數(shù)據(jù)做分析,并且制作圖表寫周報(bào)發(fā)給老大。輪到我值班的時(shí)候就用寫了一個(gè)腳本自動(dòng)處理中的數(shù)據(jù),并且將數(shù)據(jù)再寫入文件。腳本目的讀取文件,分析中的數(shù)據(jù),并且將結(jié)果寫入中。
背景
因?yàn)?Team 本身工作性質(zhì)的問題,平時(shí)需要值班。值班數(shù)據(jù)可以導(dǎo)出為本地的Excel文件。之后需要對(duì)Excel中的結(jié)果數(shù)據(jù)做分析,并且制作圖表寫周報(bào)發(fā)給老大。
對(duì)于我這種對(duì)word都玩不轉(zhuǎn)的人,別說用Excel中強(qiáng)大的公式分析數(shù)據(jù)了?。輪到我值班的時(shí)候就用nodejs寫了一個(gè)腳本自動(dòng)處理Excel中的數(shù)據(jù),并且將數(shù)據(jù)再寫入Excel文件。后來分享給同事,得到了老大的夸獎(jiǎng),自信心爆棚 ?
之前僅僅為了滿足工作的需要寫的比較的隨便,剛好國慶有時(shí)間按照CMD規(guī)范重寫一下。然后分享給大家。
腳本目的讀取Excel文件,分析Excel中的數(shù)據(jù),并且將結(jié)果寫入Excel中。
使用的第三方包在這個(gè)過程中使用了兩個(gè)第三方的包分別如下:
require("date-utils"); var xlsx = require("node-xlsx");
使用date-utils主要是用來做一些時(shí)間上的處理。比如說時(shí)間差,當(dāng)前時(shí)間向后加七天的日期。這個(gè)包非常的強(qiáng)大??梢钥聪翧PI:
具體的API詳細(xì)文檔可以參考這里:點(diǎn)擊這里
上面的兩片文檔可以結(jié)合著看。
//當(dāng)前日期推后7天的日期 var time = "2016-10-04 14:30:24" var nextSevenDay = (new Date(time)).add({"day":7}); //比較時(shí)間差 var temp = Date.compare(time1,time2); //結(jié)果位數(shù)值
node-xlsx主要做一些excel相關(guān)的處理
比如說讀取Excel 文件:
var workExcel = xlsx.parse("xxx.xls");
比如創(chuàng)建excel文件對(duì)象:
var buffer = xlsx.build([{name: name, data: datalist}]);cmd規(guī)范相關(guān)內(nèi)容
如果對(duì)CMD規(guī)范不熟悉的話可以參考這里
我的腳本的目錄結(jié)構(gòu)如下:
如果對(duì)package.json文件配置不是很熟悉的話可以參考這里
主要代碼解析:
通過node-xlsx 讀取的excel文件就是一個(gè)json數(shù)據(jù)。我們應(yīng)該都知道一個(gè)Excel文件可以包含多張表,每張表都可以管理自己的數(shù)據(jù)。
看照上面已知內(nèi)容,代碼如下:
//讀取某個(gè)excel文件 var chatExcel = xlsx.parse("./歷史記錄.xls"); //獲取需要excel某個(gè)表中的數(shù)據(jù) var tableData = excelFunc.getDataContent("歷史記錄", chatExcel); //獲取當(dāng)前表中獲取第一行數(shù)據(jù),通常在excel中這一行就是每一列的title var tableTitle = tableData[0];
在使用nodejs的過程中可能最大的一個(gè)迷惑就是區(qū)別exports和module.exports吧,它們兩者的主要區(qū)別如下:
1. 簡單的代碼示例:
一個(gè)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. 如果模塊是一個(gè)類如有一個(gè)consoleName.js的文件,其中代碼如下:
module.exports=function(name){ this.name =name; this.consoleName = function(){ console.log(this.name); } }
其它模塊中的調(diào)用模塊的方法:
var ConsoleName = require("consoleName"); var con = new ConsoleName("zhiqiang"); con.consoleName(); //zhiqiang
3. 如果模塊是一個(gè)數(shù)組,例如有一個(gè)test1.js的文件,其中的代碼如下:
module.exports =["zhiqiang1","houzhiqiang"];
在其它模塊的調(diào)用方法
var arr =require("test1") console.log(arr[1]) //houzhiqiang
其它的代碼就沒有什么別的了,都是關(guān)于公式的存計(jì)算的問題。如果有興趣的同學(xué)可以訪問源碼看一下。源碼地址
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://www.ezyhdfw.cn/yun/80601.html
摘要:安裝執(zhí)行版本號(hào),例如以下語句可以安裝幾的版本好像在墻內(nèi)只能找到以前的版本使用可以查看現(xiàn)有的版本,可以支持模糊切換。 一直說要好好學(xué)習(xí),總結(jié)知識(shí)什么的。一直覺得沒有時(shí)間。周一終于提交了論文盲審。決定從今天每周都總結(jié)一次自己的所學(xué)。希望自己能堅(jiān)持。 任務(wù)描述: 一個(gè)醫(yī)學(xué)系的同學(xué)要分析一個(gè)叫TCGA的數(shù)據(jù)庫,每個(gè)實(shí)驗(yàn)文件是txt,格式如下: hsa-miR-1228* 5.185500...
摘要:使用中庫進(jìn)行的生成操作近日,應(yīng)領(lǐng)導(dǎo)要求,從網(wǎng)上抓了一大批數(shù)據(jù)存入了數(shù)據(jù)庫,可是媽媽批,市場妹子要的是表格啊,畢竟妹子的話還是要聽的關(guān)鍵人家語氣蠻好的,就從網(wǎng)上查一些資料。 ## 使用nodejs中node-xlsx庫進(jìn)行excel的生成操作 ## 近日,應(yīng)領(lǐng)導(dǎo)要求,從網(wǎng)上抓了一大批數(shù)據(jù)存入了數(shù)據(jù)庫,可是媽媽批 ,市場妹子要的是excel表格啊,畢竟妹子的話還是要聽的(關(guān)鍵人家語氣蠻好的...
摘要:消費(fèi)之后,多線程處理文件導(dǎo)出,生成文件后上傳到等文件服務(wù)器。前端直接查詢并且展現(xiàn)對(duì)應(yīng)的任務(wù)執(zhí)行列表,去等文件服務(wù)器下載文件即可。這客戶體驗(yàn)不友好,而且網(wǎng)絡(luò)傳輸,系統(tǒng)占用多種問題。拓展閱讀導(dǎo)出最佳實(shí)踐框架 產(chǎn)品需求 產(chǎn)品經(jīng)理需要導(dǎo)出一個(gè)頁面的所有的信息到 EXCEL 文件。 需求分析 對(duì)于 excel 導(dǎo)出,是一個(gè)很常見的需求。 最常見的解決方案就是使用 poi 直接同步導(dǎo)出一個(gè) exc...
摘要:今天要分享的是,用來寫。數(shù)據(jù)處理環(huán)節(jié)效率低下,易受干擾。問題排查難以溯源。一旦數(shù)據(jù)報(bào)告有誤,想要定位問題所在,常常需要從頭開始復(fù)盤。結(jié)果和上面結(jié)果結(jié)構(gòu)是一致的。這是官網(wǎng)的文檔,但是卻不完全適用目前的場景。 大毛 豈安科技業(yè)務(wù)風(fēng)險(xiǎn)分析師 多年訂單業(yè)務(wù)反欺詐經(jīng)驗(yàn),負(fù)責(zé)豈安科技多款產(chǎn)品運(yùn)營工作。 上回筆者分享過一些 pandas 的常用數(shù)據(jù)查詢語法,但是數(shù)據(jù)查詢對(duì)于 pandas 而言只是冰...
閱讀 3124·2021-11-23 09:51
閱讀 1102·2021-09-02 15:21
閱讀 3067·2019-08-30 13:56
閱讀 1903·2019-08-29 14:12
閱讀 773·2019-08-29 13:53
閱讀 1745·2019-08-29 11:32
閱讀 1433·2019-08-29 11:25
閱讀 1546·2019-08-28 17:51