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