基于Electron的excel讀取操作

今天老板大發(fā)慈悲,發(fā)布了一項新規(guī)則,正常打卡一次,總時間增加半個小時。同學(xué)們喜大普奔,要知道我們被要求一周在實驗室打卡滿70個小時,要求是指定的時間段,不是早上8點到晚上8點就算12個小時。

助理姐姐心塞了,原以為用了釘釘就不需要她手工算時長了,結(jié)果釘釘還是趕不上老板的需求變化之快啊。為了不讓這項規(guī)則作廢,程序員義不容辭的決定用代碼拯救大家。

已知條件

釘釘可以生成考勤報表(xls格式),其中包括打卡總時長,每次打卡的情況(正常、無、遲到xxx分鐘、早退xxx分鐘)

解析xlsx文件,計算出數(shù)據(jù)后,修改原文件

node-xlsx這個包可以讀寫xlsx文件,按照行列讀取為二維數(shù)組,考勤報表的格式是相對固定的。讀取報表,生成姓名-總打卡時長、正常打卡次數(shù)的對象,計算出姓名-最終打卡時長

讀取、修改、寫入后,原文件的著色,單元格合并效果會消失,所以光用node處理文件還不夠,得有界面展示數(shù)據(jù)

electron

又能方便的繪制界面,又能讀取文件,還不用搭服務(wù)器,作為前端,當然要用Electron。慕名已久,正好用這個項目練練手。在github上根據(jù)文檔hello world了以后,就開始動手。

讀取文件

1.得到考勤報表文件位置原計劃提供“打開文件”按鈕和拖拽文件按鈕兩個方式,但是打開文件的方法略麻煩,果斷選擇了官網(wǎng)上現(xiàn)有的拖拽文件打開的方法。

2.解析xlsx文件在這一步體會到了Electron的神奇之處。在上一步中,交互行為的描述和在瀏覽器中基本完全一樣,但是又不會有fakePath的情況發(fā)生。在這一步,直接require已經(jīng)通過npm安裝的node-xlsx包。addEventListenerfs.readdirSync(pathName)出現(xiàn)在同一個文件中,感受次元壁擊破的神奇。接下來就能簡單了,用js畫界面什么的,so easy。把bootstrap加上,連css都不用操心了。

  • bootstrap要求有jquery,本地安裝jquery以后,window.jquery = window.$ = require('jquery')必須要有。否則require的文件不存在于全局空間。

3.打包用electron-packager這個npm包,一行代碼就能打包出跨平臺程序。
electron-packager AttendElectron attend --platform=win32 --overwrite
這里遇到一個問題,就是自己安裝的npm包都沒有被打包進來,這是package.jsondependencies寫成了devDependencies造成的。打包完,呈現(xiàn)在我面前的是一個300M的文件夾,orz,我的代碼只有4k而已啊。壓縮以后是90+M,自己內(nèi)部用一用,就暫時到這里了。

遺留問題

1.打包

2.主進程操作,這里基本上都在操作渲染進程,沒有用到主進程。打開文件那里還可以豐富下功能。3.npm基礎(chǔ)不扎實,devDependenciesdependencies傻傻分不清楚

后續(xù)

助理表示壓縮文件解壓的時候報錯,無解。于是打算把未壓縮的文件夾拷給她,報錯:路徑名過長。orz,所以解壓出錯也是這個問題了。解決方法:把打包后的resource\app打包為asar

1.npm install asar -g

2.asar pack app app.asar3.移除app文件夾

助理又表示能不能生成個excel表,不要著色,格式簡單。于是又加了生成excel表的功能。期間還有很多細枝末節(jié)的糾纏,需求不明確的活干起來真是orz啊。=, =

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌,老刑警劉巖,帶你破解...
    沈念sama閱讀 228,345評論 6 531
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 98,494評論 3 416
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 176,283評論 0 374
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經(jīng)常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,953評論 1 309
  • 正文 為了忘掉前任,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,714評論 6 410
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上,一...
    開封第一講書人閱讀 55,186評論 1 324
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 43,255評論 3 441
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 42,410評論 0 288
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 48,940評論 1 335
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 40,776評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,976評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,518評論 5 359
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 44,210評論 3 347
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,642評論 0 26
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,878評論 1 286
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,654評論 3 391
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,958評論 2 373

推薦閱讀更多精彩內(nèi)容